mirror of
https://github.com/boostorg/mpl.git
synced 2026-08-07 14:14:24 +02:00
Compare commits
47 Commits
boost-1.71.0
...
develop
| Author | SHA1 | Date | |
|---|---|---|---|
| 2358570f2d | |||
| 02ec362f5c | |||
| 4b8160057a | |||
| 03869de68e | |||
| 74d927f984 | |||
| aa3b1c464d | |||
| 7df84b35eb | |||
| cd74f40d46 | |||
| 502078c91d | |||
| 2b7937ac6f | |||
| 6172029f82 | |||
| d223d3cd60 | |||
| bace27426e | |||
| c8a1f64ff6 | |||
| 4b34fa1378 | |||
| bf4a5afb3c | |||
| b37b709cbd | |||
| b86c4cc950 | |||
| 8b6fae5089 | |||
| 1856fa8429 | |||
| 271dea60f5 | |||
| 992a85f466 | |||
| 12a59d801f | |||
| d4e911ab88 | |||
| 1019bb5fad | |||
| e30c4102a2 | |||
| fb6b861834 | |||
| 8499ae7e4f | |||
| b440c45c28 | |||
| db09fb1dce | |||
| 8f10d06b96 | |||
| 03d89ec586 | |||
| 3301d917dc | |||
| bd4ec497a8 | |||
| 4634ef904e | |||
| c61b1e3508 | |||
| e9e3faf4be | |||
| 5f79900dcc | |||
| 793bf12d42 | |||
| 341748e4cb | |||
| db132085b9 | |||
| f3464e3ef7 | |||
| 71ee3ac5bd | |||
| cc883aa12a | |||
| 6704b09dcf | |||
| 9c0f98f088 | |||
| 3d8a60ed6a |
@@ -0,0 +1,97 @@
|
|||||||
|
# Copyright 2016, 2017 Peter Dimov
|
||||||
|
# Copyright 2017 - 2019 James E. King III
|
||||||
|
# Copyright 2019 - 2021 Alexander Grund
|
||||||
|
# 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)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Generic Appveyor build script for boostorg repositories
|
||||||
|
# See: https://github.com/boostorg/boost-ci/
|
||||||
|
#
|
||||||
|
# Instructions for customizing this script for your library:
|
||||||
|
#
|
||||||
|
# 1. Customize the compilers and language levels you want.
|
||||||
|
# 2. If you have more than include/, src/, test/, example/, examples/,
|
||||||
|
# benchmark/ or tools/ directories, set the environment variable DEPINST.
|
||||||
|
# For example if your build uses code in "bench/" and "fog/" directories:
|
||||||
|
# - DEPINST: --include bench --include fog
|
||||||
|
# 3. Enable pull request builds in your boostorg/<library> account.
|
||||||
|
#
|
||||||
|
# That's it - the script will do everything else for you.
|
||||||
|
#
|
||||||
|
|
||||||
|
version: 1.0.{build}-{branch}
|
||||||
|
|
||||||
|
shallow_clone: true
|
||||||
|
|
||||||
|
branches:
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
- develop
|
||||||
|
- /bugfix\/.*/
|
||||||
|
- /feature\/.*/
|
||||||
|
- /fix\/.*/
|
||||||
|
- /pr\/.*/
|
||||||
|
|
||||||
|
skip_commits:
|
||||||
|
files:
|
||||||
|
- LICENSE
|
||||||
|
- meta/*
|
||||||
|
- README.md
|
||||||
|
|
||||||
|
matrix:
|
||||||
|
fast_finish: false
|
||||||
|
# Adding MAYFAIL to any matrix job allows it to fail but the build stays green:
|
||||||
|
allow_failures:
|
||||||
|
- MAYFAIL: true
|
||||||
|
|
||||||
|
environment:
|
||||||
|
global:
|
||||||
|
B2_CI_VERSION: 1
|
||||||
|
GIT_FETCH_JOBS: 4
|
||||||
|
# see: http://www.boost.org/build/doc/html/bbv2/overview/invocation.html#bbv2.overview.invocation.properties
|
||||||
|
# to use the default for a given environment, comment it out; recommend you build debug and release however:
|
||||||
|
# on Windows it is important to exercise all the possibilities, especially shared vs static, however most
|
||||||
|
# libraries that care about this exercise it in their Jamfiles...
|
||||||
|
B2_ADDRESS_MODEL: 32,64
|
||||||
|
B2_LINK: shared,static
|
||||||
|
# B2_THREADING: threading=multi,single
|
||||||
|
B2_VARIANT: release
|
||||||
|
|
||||||
|
matrix:
|
||||||
|
- FLAVOR: Visual Studio 2017 C++2a Strict
|
||||||
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||||
|
B2_CXXFLAGS: -permissive-
|
||||||
|
B2_CXXSTD: 2a
|
||||||
|
B2_TOOLSET: msvc-14.1
|
||||||
|
|
||||||
|
- FLAVOR: Visual Studio 2017 C++14/17
|
||||||
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||||
|
B2_CXXSTD: 14,17
|
||||||
|
B2_TOOLSET: msvc-14.1
|
||||||
|
|
||||||
|
- FLAVOR: cygwin (32-bit)
|
||||||
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||||
|
ADDPATH: C:\cygwin\bin;
|
||||||
|
B2_ADDRESS_MODEL: 32
|
||||||
|
B2_CXXSTD: 03,11,14,1z
|
||||||
|
B2_TOOLSET: gcc
|
||||||
|
|
||||||
|
- FLAVOR: cygwin (64-bit)
|
||||||
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||||
|
ADDPATH: C:\cygwin64\bin;
|
||||||
|
B2_ADDRESS_MODEL: 64
|
||||||
|
B2_CXXSTD: 03,11,14,1z
|
||||||
|
B2_TOOLSET: gcc
|
||||||
|
|
||||||
|
install:
|
||||||
|
- git clone --depth 1 https://github.com/boostorg/boost-ci.git C:\boost-ci-cloned
|
||||||
|
# Copy ci folder if not testing Boost.CI
|
||||||
|
- if NOT "%APPVEYOR_PROJECT_NAME%" == "boost-ci" xcopy /s /e /q /i /y C:\boost-ci-cloned\ci .\ci
|
||||||
|
- rmdir /s /q C:\boost-ci-cloned
|
||||||
|
- ci\appveyor\install.bat
|
||||||
|
|
||||||
|
build: off
|
||||||
|
|
||||||
|
test_script: ci\build.bat
|
||||||
|
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
# Copyright 2019 - 2021 Alexander Grund
|
||||||
|
# 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)
|
||||||
|
#
|
||||||
|
# Sample codecov configuration file. Edit as required
|
||||||
|
|
||||||
|
codecov:
|
||||||
|
max_report_age: off
|
||||||
|
require_ci_to_pass: yes
|
||||||
|
notify:
|
||||||
|
# Increase this if you have multiple coverage collection jobs
|
||||||
|
after_n_builds: 2
|
||||||
|
wait_for_ci: yes
|
||||||
|
|
||||||
|
parsers:
|
||||||
|
gcov:
|
||||||
|
branch_detection:
|
||||||
|
conditional: yes
|
||||||
|
loop: yes
|
||||||
|
method: no
|
||||||
|
macro: no
|
||||||
|
|
||||||
|
# Change how pull request comments look
|
||||||
|
comment:
|
||||||
|
layout: "reach,diff,flags,files,footer"
|
||||||
|
|
||||||
|
# Ignore specific files or folders. Glob patterns are supported.
|
||||||
|
# See https://docs.codecov.com/docs/ignoring-paths
|
||||||
|
ignore:
|
||||||
|
- libs/mpl/test/
|
||||||
|
- test/
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
#
|
||||||
|
# Copyright 2020-2021 Peter Dimov
|
||||||
|
# Copyright 2021 Andrey Semashev
|
||||||
|
# Copyright 2021-2024 Alexander Grund
|
||||||
|
# Copyright 2022-2025 James E. King III
|
||||||
|
#
|
||||||
|
# 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)
|
||||||
|
#
|
||||||
|
# This workflow uses the Boost.CI reusable workflow which builds a variety of
|
||||||
|
# configurations of your project, runs tests, and generates code coverage reports.
|
||||||
|
#
|
||||||
|
# To use it, copy this file into your repository as `.github/workflows/ci.yml` and
|
||||||
|
# customize it appropriately.
|
||||||
|
#
|
||||||
|
---
|
||||||
|
name: Boost.CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- develop
|
||||||
|
- bugfix/**
|
||||||
|
- feature/**
|
||||||
|
- fix/**
|
||||||
|
- pr/**
|
||||||
|
paths-ignore:
|
||||||
|
- LICENSE
|
||||||
|
- meta/**
|
||||||
|
- README.md
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
call-boost-ci:
|
||||||
|
name: Run Boost.CI
|
||||||
|
uses: boostorg/boost-ci/.github/workflows/reusable.yml@master
|
||||||
|
secrets:
|
||||||
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||||
|
COVERITY_SCAN_NOTIFICATION_EMAIL: ${{ secrets.COVERITY_SCAN_NOTIFICATION_EMAIL }}
|
||||||
|
COVERITY_SCAN_TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
|
||||||
-175
@@ -1,175 +0,0 @@
|
|||||||
# Copyright 2016 Peter Dimov
|
|
||||||
# Copyright 2017, 2018 James E. King III
|
|
||||||
# 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)
|
|
||||||
|
|
||||||
#
|
|
||||||
# Generic Travis CI build script for boostorg repositories
|
|
||||||
# See: https://github.com/jeking3/boost-ci
|
|
||||||
#
|
|
||||||
# Instructions for customizing this script for your library:
|
|
||||||
#
|
|
||||||
# 1. Customize the compilers and language levels you want in the 'jobs'.
|
|
||||||
# 2. If you have more than include/, src/, test/, example/, examples/, or
|
|
||||||
# tools/ directories, modify your Travis CI project and add the environment
|
|
||||||
# variable DEPINST. For example if your build uses code in "bench/" and
|
|
||||||
# "fog/" directories, then set DEPINST to the following:
|
|
||||||
# --include bench --include fog
|
|
||||||
# 3. If you want to enable Coverity Scan, you need to provide the environment
|
|
||||||
# variables COVERITY_SCAN_TOKEN and COVERITY_SCAN_NOTIFICATION_EMAIL in
|
|
||||||
# your github settings.
|
|
||||||
# 4. Enable pull request builds in your boostorg/<library> account.
|
|
||||||
#
|
|
||||||
# That's it - the scripts will do everything else for you.
|
|
||||||
|
|
||||||
sudo: false
|
|
||||||
dist: trusty
|
|
||||||
language: cpp
|
|
||||||
|
|
||||||
env:
|
|
||||||
global:
|
|
||||||
# see: http://www.boost.org/build/doc/html/bbv2/overview/invocation.html#bbv2.overview.invocation.properties
|
|
||||||
# to use the default for a given environment, comment it out; recommend you build debug and release however..
|
|
||||||
# - B2_ADDRESS_MODEL=address-model=64,32
|
|
||||||
# - B2_LINK=link=shared,static
|
|
||||||
# - B2_THREADING=threading=multi,single
|
|
||||||
- B2_VARIANT=variant=release,debug
|
|
||||||
|
|
||||||
install:
|
|
||||||
- git clone https://github.com/jeking3/boost-ci.git boost-ci
|
|
||||||
- cp -pr boost-ci/ci boost-ci/.codecov.yml .
|
|
||||||
- source ci/travis/install.sh
|
|
||||||
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- binutils-gold
|
|
||||||
- gdb
|
|
||||||
- libc6-dbg
|
|
||||||
|
|
||||||
branches:
|
|
||||||
only:
|
|
||||||
- develop
|
|
||||||
- master
|
|
||||||
|
|
||||||
script:
|
|
||||||
- cd $BOOST_ROOT/libs/$SELF
|
|
||||||
- ci/travis/build.sh
|
|
||||||
|
|
||||||
#
|
|
||||||
# Default toolsets in Ubuntu
|
|
||||||
#
|
|
||||||
# trusty xenial bionic
|
|
||||||
# 14.04 16.04 18.04
|
|
||||||
# ------ ------ ------
|
|
||||||
# clang 3.4 3.8 6.0
|
|
||||||
# gcc 4.8.2 5.3.1 7.3.0
|
|
||||||
#
|
|
||||||
|
|
||||||
anchors:
|
|
||||||
clang-34: &clang-34 { apt: { packages: [ "clang-3.4" ], sources: [ "llvm-toolchain-trusty-3.4" ] } }
|
|
||||||
clang-38: &clang-38 { apt: { packages: [ "clang-3.8",
|
|
||||||
"libstdc++-6-dev" ], sources: [ "llvm-toolchain-trusty-3.8",
|
|
||||||
"ubuntu-toolchain-r-test" ] } }
|
|
||||||
clang-4: &clang-4 { apt: { packages: [ "clang-4.0",
|
|
||||||
"libstdc++-6-dev" ], sources: [ "llvm-toolchain-trusty-4.0",
|
|
||||||
"ubuntu-toolchain-r-test" ] } }
|
|
||||||
clang-5: &clang-5 { apt: { packages: [ "clang-5.0",
|
|
||||||
"libstdc++-7-dev" ], sources: [ "llvm-toolchain-trusty-5.0",
|
|
||||||
"ubuntu-toolchain-r-test" ] } }
|
|
||||||
clang-6: &clang-6 { apt: { packages: [ "clang-6.0",
|
|
||||||
"libc++-dev",
|
|
||||||
"libstdc++-8-dev",
|
|
||||||
"valgrind" ], sources: [ "llvm-toolchain-trusty-6.0",
|
|
||||||
"ubuntu-toolchain-r-test" ] } }
|
|
||||||
gcc-44: &gcc-44 { apt: { packages: [ "g++-4.4" ], sources: [ "ubuntu-toolchain-r-test" ] } }
|
|
||||||
gcc-46: &gcc-46 { apt: { packages: [ "g++-4.6" ], sources: [ "ubuntu-toolchain-r-test" ] } }
|
|
||||||
gcc-48: &gcc-48 { apt: { packages: [ "g++-4.8" ], sources: [ "ubuntu-toolchain-r-test" ] } }
|
|
||||||
gcc-5: &gcc-5 { apt: { packages: [ "g++-5" ], sources: [ "ubuntu-toolchain-r-test" ] } }
|
|
||||||
gcc-6: &gcc-6 { apt: { packages: [ "g++-6" ], sources: [ "ubuntu-toolchain-r-test" ] } }
|
|
||||||
gcc-7: &gcc-7 { apt: { packages: [ "g++-7" ], sources: [ "ubuntu-toolchain-r-test" ] } }
|
|
||||||
gcc-8: &gcc-8 { apt: { packages: [ "g++-8" ], sources: [ "ubuntu-toolchain-r-test" ] } }
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
allow_failures:
|
|
||||||
- env:
|
|
||||||
- COPY="all the environment settings from your job"
|
|
||||||
|
|
||||||
include:
|
|
||||||
# libstdc++
|
|
||||||
- { os: "linux", env: [ "TOOLSET=gcc-4.4", "CXXSTD=98,0x" ], addons: *gcc-44 }
|
|
||||||
- { os: "linux", env: [ "TOOLSET=gcc-4.6", "CXXSTD=03,0x" ], addons: *gcc-46 }
|
|
||||||
- { os: "linux", env: [ "TOOLSET=gcc-4.8", "CXXSTD=03,11" ], addons: *gcc-48 }
|
|
||||||
- { os: "linux", env: [ "TOOLSET=gcc-5", "CXXSTD=03,11" ], addons: *gcc-5 }
|
|
||||||
- { os: "linux", env: [ "TOOLSET=gcc-6", "CXXSTD=03,11,14" ], addons: *gcc-6 }
|
|
||||||
- { os: "linux", env: [ "TOOLSET=gcc-7", "CXXSTD=03,11,14,17" ], addons: *gcc-7 }
|
|
||||||
- { os: "linux", env: [ "TOOLSET=gcc-8", "CXXSTD=03,11,14,17,2a" ], addons: *gcc-8 }
|
|
||||||
- { os: "linux", env: [ "TOOLSET=clang-3.4", "CXXSTD=03,11" ], addons: *clang-34 }
|
|
||||||
- { os: "linux", env: [ "TOOLSET=clang-3.8", "CXXSTD=03,11,14" ], addons: *clang-38 }
|
|
||||||
- { os: "linux", env: [ "TOOLSET=clang-4.0", "CXXSTD=03,11,14" ], addons: *clang-4 }
|
|
||||||
- { os: "linux", env: [ "TOOLSET=clang-5.0", "CXXSTD=03,11,14,17" ], addons: *clang-5 }
|
|
||||||
- { os: "linux", env: [ "TOOLSET=clang-6.0", "CXXSTD=03,11,14,17,2a" ], addons: *clang-6 }
|
|
||||||
# libc++
|
|
||||||
- { os: "linux", env: [ "TOOLSET=clang-6.0", "CXXSTD=03,11,14,17,2a",
|
|
||||||
"CXXFLAGS=-stdlib=libc++" ], addons: *clang-6 }
|
|
||||||
# the rvm environment on osx is taking over basic commands like "cd" and breaking things!
|
|
||||||
# - { os: "osx" , env: [ "COMMENT=libc++",
|
|
||||||
# "TOOLSET=clang", "CXXSTD=03,11,14" ] }
|
|
||||||
|
|
||||||
- os: linux
|
|
||||||
env:
|
|
||||||
- COMMENT=codecov.io
|
|
||||||
- TOOLSET=gcc-7
|
|
||||||
- DEFINES="define=BOOST_NO_STRESS_TEST=1"
|
|
||||||
addons: *gcc-7
|
|
||||||
script:
|
|
||||||
- pushd /tmp && git clone https://github.com/linux-test-project/lcov.git && export PATH=/tmp/lcov/bin:$PATH && which lcov && lcov --version && popd
|
|
||||||
- cd $BOOST_ROOT/libs/$SELF
|
|
||||||
- ci/travis/codecov.sh
|
|
||||||
|
|
||||||
- os: linux
|
|
||||||
env:
|
|
||||||
- COMMENT=cppcheck
|
|
||||||
script:
|
|
||||||
- cd $BOOST_ROOT/libs/$SELF
|
|
||||||
- ci/travis/cppcheck.sh
|
|
||||||
|
|
||||||
- os: linux
|
|
||||||
env:
|
|
||||||
- COMMENT=ubsan
|
|
||||||
- B2_VARIANT=variant=debug
|
|
||||||
- TOOLSET=gcc-8
|
|
||||||
- CXXSTD=03,11,14,17,2a
|
|
||||||
- DEFINES="define=BOOST_NO_STRESS_TEST=1"
|
|
||||||
- CXXFLAGS="cxxflags=-fno-omit-frame-pointer cxxflags=-fsanitize=undefined cxxflags=-fno-sanitize-recover=undefined"
|
|
||||||
- LINKFLAGS="linkflags=-fsanitize=undefined linkflags=-fno-sanitize-recover=undefined linkflags=-fuse-ld=gold"
|
|
||||||
- UBSAN_OPTIONS=print_stacktrace=1
|
|
||||||
addons: *gcc-8
|
|
||||||
|
|
||||||
- os: linux
|
|
||||||
env:
|
|
||||||
- COMMENT=valgrind
|
|
||||||
- TOOLSET=clang-6.0
|
|
||||||
- CXXSTD=03,11,14,17,2a
|
|
||||||
- DEFINES="define=BOOST_NO_STRESS_TEST=1"
|
|
||||||
- B2_VARIANT=variant=debug
|
|
||||||
- TESTFLAGS=testing.launcher=valgrind
|
|
||||||
- VALGRIND_OPTS=--error-exitcode=1
|
|
||||||
addons: *clang-6
|
|
||||||
|
|
||||||
#################### Jobs to run on pushes to master, develop ###################
|
|
||||||
|
|
||||||
# Coverity Scan
|
|
||||||
- os: linux
|
|
||||||
if: (env(COVERITY_SCAN_NOTIFICATION_EMAIL) IS present) AND (branch IN (develop, master)) AND (type IN (cron, push))
|
|
||||||
env:
|
|
||||||
- COMMENT="Coverity Scan"
|
|
||||||
- TOOLSET=gcc-7
|
|
||||||
addons: *gcc-7
|
|
||||||
script:
|
|
||||||
- cd $BOOST_ROOT/libs/$SELF
|
|
||||||
- ci/travis/coverity.sh
|
|
||||||
|
|
||||||
notifications:
|
|
||||||
email:
|
|
||||||
false
|
|
||||||
+23
-19
@@ -1,26 +1,30 @@
|
|||||||
# Copyright 2018 Mike Dev
|
# Generated by `boostdep --cmake mpl`
|
||||||
|
# Copyright 2020, 2021 Peter Dimov
|
||||||
# Distributed under the Boost Software License, Version 1.0.
|
# Distributed under the Boost Software License, Version 1.0.
|
||||||
# See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt
|
# https://www.boost.org/LICENSE_1_0.txt
|
||||||
#
|
|
||||||
# NOTE: CMake support for Boost.Mpl is currently experimental at best
|
|
||||||
# and the interface is likely to change in the future
|
|
||||||
|
|
||||||
cmake_minimum_required( VERSION 3.5 )
|
cmake_minimum_required(VERSION 3.5...3.20)
|
||||||
project( BoostMpl LANGUAGES CXX )
|
|
||||||
|
|
||||||
add_library( boost_mpl INTERFACE )
|
project(boost_mpl VERSION "${BOOST_SUPERPROJECT_VERSION}" LANGUAGES CXX)
|
||||||
add_library( Boost::mpl ALIAS boost_mpl )
|
|
||||||
|
|
||||||
target_include_directories( boost_mpl INTERFACE include )
|
add_library(boost_mpl INTERFACE)
|
||||||
|
add_library(Boost::mpl ALIAS boost_mpl)
|
||||||
|
|
||||||
target_link_libraries( boost_mpl
|
target_include_directories(boost_mpl INTERFACE include)
|
||||||
INTERFACE
|
|
||||||
Boost::config
|
target_link_libraries(boost_mpl
|
||||||
Boost::core
|
INTERFACE
|
||||||
Boost::predef
|
Boost::config
|
||||||
Boost::preprocessor
|
Boost::core
|
||||||
Boost::static_assert
|
Boost::predef
|
||||||
Boost::type_traits
|
Boost::preprocessor
|
||||||
Boost::utility
|
Boost::static_assert
|
||||||
|
Boost::type_traits
|
||||||
|
Boost::utility
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(BUILD_TESTING AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt")
|
||||||
|
|
||||||
|
add_subdirectory(test)
|
||||||
|
|
||||||
|
endif()
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
# Boost.MPL Library Jamfile
|
|
||||||
#
|
|
||||||
# Copyright (c) 2018 James E. King III
|
|
||||||
#
|
|
||||||
# Use, modification, and distribution are subject to the
|
|
||||||
# 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 order by name to ease maintenance
|
|
||||||
build-project example ;
|
|
||||||
build-project test ;
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
MPL, part of collection of the [Boost C++ Libraries](http://github.com/boostorg), provides a general-purpose, high-level C++ template metaprogramming framework of compile-time algorithms, sequences and metafunctions.
|
MPL, part of collection of the [Boost C++ Libraries](https://github.com/boostorg), provides a general-purpose, high-level C++ template metaprogramming framework of compile-time algorithms, sequences and metafunctions.
|
||||||
|
|
||||||
### License
|
### License
|
||||||
|
|
||||||
Distributed under the [Boost Software License, Version 1.0](http://www.boost.org/LICENSE_1_0.txt).
|
Distributed under the [Boost Software License, Version 1.0](https://www.boost.org/LICENSE_1_0.txt).
|
||||||
|
|
||||||
### Properties
|
### Properties
|
||||||
|
|
||||||
@@ -11,10 +11,11 @@ Distributed under the [Boost Software License, Version 1.0](http://www.boost.org
|
|||||||
|
|
||||||
### Build Status
|
### Build Status
|
||||||
|
|
||||||
Branch | Travis | Appveyor | Coverity Scan | codecov.io | Deps | Docs | Tests |
|
<!-- boost-ci/tools/makebadges.sh --project mpl --appveyor 49kygihpsvv2sps0 --codecov 31bBblRchG --coverity 15866 -->
|
||||||
:-------------: | ------ | -------- | ------------- | ---------- | ---- | ---- | ----- |
|
| Branch | GHA CI | Appveyor | Coverity Scan | codecov.io | Deps | Docs | Tests |
|
||||||
[`master`](https://github.com/boostorg/mpl/tree/master) | [](https://travis-ci.org/boostorg/mpl) | [](https://ci.appveyor.com/project/jeking3/mpl-nrhfm/branch/master) | [](https://scan.coverity.com/projects/boostorg-mpl) | [](https://codecov.io/gh/boostorg/mpl/branch/master)| [](https://pdimov.github.io/boostdep-report/master/mpl.html) | [](http://www.boost.org/doc/libs/master/doc/html/mpl.html) | [](http://www.boost.org/development/tests/master/developer/mpl.html)
|
| :-------------: | ------ | -------- | ------------- | ---------- | ---- | ---- | ----- |
|
||||||
[`develop`](https://github.com/boostorg/mpl/tree/develop) | [](https://travis-ci.org/boostorg/mpl) | [](https://ci.appveyor.com/project/jeking3/mpl-nrhfm/branch/develop) | [](https://scan.coverity.com/projects/boostorg-mpl) | [](https://codecov.io/gh/boostorg/mpl/branch/develop) | [](https://pdimov.github.io/boostdep-report/develop/mpl.html) | [](http://www.boost.org/doc/libs/develop/doc/html/mpl.html) | [](http://www.boost.org/development/tests/develop/developer/mpl.html)
|
| [`master`](https://github.com/boostorg/mpl/tree/master) | [](https://github.com/boostorg/mpl/actions?query=branch:master) | [](https://ci.appveyor.com/project/cppalliance/mpl/branch/master) | [](https://scan.coverity.com/projects/boostorg-mpl) | [](https://codecov.io/gh/boostorg/mpl/tree/master) | [](https://pdimov.github.io/boostdep-report/master/mpl.html) | [](https://www.boost.org/doc/libs/master/libs/mpl) | [](https://www.boost.org/development/tests/master/developer/mpl.html)
|
||||||
|
| [`develop`](https://github.com/boostorg/mpl/tree/develop) | [](https://github.com/boostorg/mpl/actions?query=branch:develop) | [](https://ci.appveyor.com/project/cppalliance/mpl/branch/develop) | [](https://scan.coverity.com/projects/boostorg-mpl) | [](https://codecov.io/gh/boostorg/mpl/tree/develop) | [](https://pdimov.github.io/boostdep-report/develop/mpl.html) | [](https://www.boost.org/doc/libs/develop/libs/mpl) | [](https://www.boost.org/development/tests/develop/developer/mpl.html)
|
||||||
|
|
||||||
### Directories
|
### Directories
|
||||||
|
|
||||||
@@ -27,8 +28,8 @@ Branch | Travis | Appveyor | Coverity Scan | codecov.io | Deps | Docs |
|
|||||||
|
|
||||||
### More information
|
### More information
|
||||||
|
|
||||||
* [Ask questions](http://stackoverflow.com/questions/ask?tags=c%2B%2B,boost,boost-mpl)
|
* [Ask questions](https://stackoverflow.com/questions/ask?tags=c%2B%2B,boost,boost-mpl)
|
||||||
* [Report bugs](https://github.com/boostorg/mpl/issues): Be sure to mention Boost version, platform and compiler you're using. A small compilable code sample to reproduce the problem is always good as well.
|
* [Report bugs](https://github.com/boostorg/mpl/issues): Be sure to mention Boost version, platform and compiler you're using. A small compilable code sample to reproduce the problem is always good as well.
|
||||||
* Submit your patches as pull requests against **develop** branch. Note that by submitting patches you agree to license your modifications under the [Boost Software License, Version 1.0](http://www.boost.org/LICENSE_1_0.txt).
|
* Submit your patches as pull requests against **develop** branch. Note that by submitting patches you agree to license your modifications under the [Boost Software License, Version 1.0](https://www.boost.org/LICENSE_1_0.txt).
|
||||||
* Discussions about the library are held on the [Boost developers mailing list](http://www.boost.org/community/groups.html#main). Be sure to read the [discussion policy](http://www.boost.org/community/policy.html) before posting and add the `[mpl]` tag at the beginning of the subject line.
|
* Discussions about the library are held on the [Boost developers mailing list](https://www.boost.org/community/groups.html#main). Be sure to read the [discussion policy](https://www.boost.org/community/policy.html) before posting and add the `[mpl]` tag at the beginning of the subject line.
|
||||||
|
|
||||||
|
|||||||
-126
@@ -1,126 +0,0 @@
|
|||||||
# Copyright 2016, 2017 Peter Dimov
|
|
||||||
# Copyright (C) 2017, 2018 James E. King III
|
|
||||||
# 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)
|
|
||||||
|
|
||||||
#
|
|
||||||
# Generic Appveyor build script for boostorg repositories
|
|
||||||
# See: https://github.com/jeking3/boost-ci/
|
|
||||||
#
|
|
||||||
# Instructions for customizing this script for your library:
|
|
||||||
#
|
|
||||||
# 1. Customize the compilers and language levels you want.
|
|
||||||
# 2. If you have move than include/, src/, test/, example/, examples/,
|
|
||||||
# benchmark/ or tools/ directories, set the environment variable DEPINST.
|
|
||||||
# For example if your build uses code in "bench/" and "fog/" directories:
|
|
||||||
# - DEPINST: --include bench --include fog
|
|
||||||
# 3. Enable pull request builds in your boostorg/<library> account.
|
|
||||||
#
|
|
||||||
# That's it - the script will do everything else for you.
|
|
||||||
#
|
|
||||||
|
|
||||||
version: 1.0.{build}-{branch}
|
|
||||||
|
|
||||||
shallow_clone: true
|
|
||||||
|
|
||||||
branches:
|
|
||||||
only:
|
|
||||||
- develop
|
|
||||||
- master
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
# Adding MAYFAIL to any matrix job allows it to fail but the build stays green:
|
|
||||||
allow_failures:
|
|
||||||
- MAYFAIL: true
|
|
||||||
|
|
||||||
environment:
|
|
||||||
global:
|
|
||||||
# see: http://www.boost.org/build/doc/html/bbv2/overview/invocation.html#bbv2.overview.invocation.properties
|
|
||||||
# to use the default for a given environment, comment it out; recommend you build debug and release however:
|
|
||||||
# on Windows it is important to exercise all the possibilities, especially shared vs static, however most
|
|
||||||
# libraries that care about this exercise it in their Jamfiles...
|
|
||||||
# B2_ADDRESS_MODEL: address-model=64,32
|
|
||||||
# B2_LINK: link=shared,static
|
|
||||||
# B2_THREADING: threading=multi,single
|
|
||||||
B2_VARIANT: variant=release,debug
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
- FLAVOR: Visual Studio 2017 C++2a Strict
|
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
|
||||||
TOOLSET: msvc-14.1
|
|
||||||
B2_ADDRESS_MODEL: address-model=64
|
|
||||||
CXXFLAGS: cxxflags=-permissive-
|
|
||||||
CXXSTD: latest # 2a
|
|
||||||
|
|
||||||
- FLAVOR: Visual Studio 2017 C++17
|
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
|
||||||
TOOLSET: msvc-14.1
|
|
||||||
B2_ADDRESS_MODEL: address-model=64
|
|
||||||
CXXSTD: 17
|
|
||||||
|
|
||||||
- FLAVOR: Visual Studio 2017 C++14 (Default)
|
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
|
||||||
TOOLSET: msvc-14.1
|
|
||||||
B2_ADDRESS_MODEL: address-model=64,32
|
|
||||||
|
|
||||||
- FLAVOR: Visual Studio 2015 C++14 (Default)
|
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
|
||||||
TOOLSET: msvc-14.0
|
|
||||||
B2_ADDRESS_MODEL: address-model=64,32
|
|
||||||
|
|
||||||
- FLAVOR: Visual Studio 2010, 2012, 2013
|
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
|
|
||||||
TOOLSET: msvc-10.0,msvc-11.0,msvc-12.0
|
|
||||||
|
|
||||||
- FLAVOR: cygwin (32-bit)
|
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
|
||||||
ADDPATH: C:\cygwin\bin;
|
|
||||||
B2_ADDRESS_MODEL: address-model=32
|
|
||||||
CXXSTD: 03,11
|
|
||||||
# https://github.com/boostorg/test/issues/144
|
|
||||||
DEFINES: define=_POSIX_C_SOURCE=200112L
|
|
||||||
THREADING: threadapi=pthread
|
|
||||||
TOOLSET: gcc
|
|
||||||
|
|
||||||
- FLAVOR: cygwin (64-bit)
|
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
|
||||||
ADDPATH: C:\cygwin64\bin;
|
|
||||||
B2_ADDRESS_MODEL: address-model=64
|
|
||||||
CXXSTD: 11,17
|
|
||||||
# https://github.com/boostorg/test/issues/144
|
|
||||||
DEFINES: define=_POSIX_C_SOURCE=200112L define=__USE_ISOC99
|
|
||||||
THREADING: threadapi=pthread
|
|
||||||
TOOLSET: gcc
|
|
||||||
|
|
||||||
- FLAVOR: mingw32
|
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
|
||||||
ARCH: i686
|
|
||||||
B2_ADDRESS_MODEL: address-model=32
|
|
||||||
CXXSTD: 03,11
|
|
||||||
SCRIPT: ci\appveyor\mingw.bat
|
|
||||||
|
|
||||||
- FLAVOR: mingw64
|
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
|
||||||
ARCH: x86_64
|
|
||||||
B2_ADDRESS_MODEL: address-model=64
|
|
||||||
CXXSTD: 11,17
|
|
||||||
DEFINES: define=__USE_ISOC99
|
|
||||||
SCRIPT: ci\appveyor\mingw.bat
|
|
||||||
|
|
||||||
install:
|
|
||||||
- set SELF=%APPVEYOR_PROJECT_NAME:-=_%
|
|
||||||
- git clone https://github.com/jeking3/boost-ci.git C:\boost-ci
|
|
||||||
- xcopy /s /e /q /i C:\boost-ci\ci .\ci
|
|
||||||
- ci\appveyor\install.bat
|
|
||||||
|
|
||||||
build: off
|
|
||||||
|
|
||||||
test_script:
|
|
||||||
- set SELF=%APPVEYOR_PROJECT_NAME:-=_%
|
|
||||||
- PATH=%ADDPATH%%PATH%
|
|
||||||
# The definition of TOOLCXX omits CXXSTD= if it was not defined above
|
|
||||||
- IF NOT DEFINED CXXSTD (SET TOOLCXX=toolset=%TOOLSET%) ELSE (SET TOOLCXX=toolset=%TOOLSET% cxxstd=%CXXSTD%)
|
|
||||||
# Echo the complete build command to the build log
|
|
||||||
- IF NOT DEFINED SCRIPT (ECHO b2 libs/%SELF:\=/% %TOOLCXX% %CXXFLAGS% %DEFINES% %THREADING% %B2_ADDRESS_MODEL% %B2_LINK% %B2_THREADING% %B2_VARIANT% -j3)
|
|
||||||
# Now go build...
|
|
||||||
- IF DEFINED SCRIPT (call libs\%SELF%\%SCRIPT%) ELSE (b2 libs/%SELF:\=/% %TOOLCXX% %CXXFLAGS% %DEFINES% %THREADING% %B2_ADDRESS_MODEL% %B2_LINK% %B2_THREADING% %B2_VARIANT% -j3)
|
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
# Copyright René Ferdinand Rivera Morell 2023-2024
|
||||||
|
# Distributed under the Boost Software License, Version 1.0.
|
||||||
|
# (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
# http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
require-b2 5.2 ;
|
||||||
|
|
||||||
|
constant boost_dependencies :
|
||||||
|
/boost/config//boost_config
|
||||||
|
/boost/core//boost_core
|
||||||
|
/boost/predef//boost_predef
|
||||||
|
/boost/preprocessor//boost_preprocessor
|
||||||
|
/boost/static_assert//boost_static_assert
|
||||||
|
/boost/type_traits//boost_type_traits
|
||||||
|
/boost/utility//boost_utility ;
|
||||||
|
|
||||||
|
project /boost/mpl
|
||||||
|
: common-requirements
|
||||||
|
<include>include
|
||||||
|
;
|
||||||
|
|
||||||
|
explicit
|
||||||
|
[ alias boost_mpl : : : : <library>$(boost_dependencies) ]
|
||||||
|
[ alias all : boost_mpl example test ]
|
||||||
|
;
|
||||||
|
|
||||||
|
call-if : boost-library mpl
|
||||||
|
;
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ unspecified.</p>
|
|||||||
<div class="section" id="id30">
|
<div class="section" id="id30">
|
||||||
<h3><a class="subsection-title" href="#definitions" name="definitions">Definitions</a></h3>
|
<h3><a class="subsection-title" href="#definitions" name="definitions">Definitions</a></h3>
|
||||||
<ul class="simple" id="value-part">
|
<ul class="simple" id="value-part">
|
||||||
<span id="key-part"></span><li>A <em>key</em> is a part of the element type used to identify and retrieve
|
<li><span id="key-part"></span>A <em>key</em> is a part of the element type used to identify and retrieve
|
||||||
the element within the sequence.</li>
|
the element within the sequence.</li>
|
||||||
<li>A <em>value</em> is a part of the element type retrievied from the sequence
|
<li>A <em>value</em> is a part of the element type retrievied from the sequence
|
||||||
by its key.</li>
|
by its key.</li>
|
||||||
|
|||||||
@@ -75,12 +75,12 @@ such that for any type <tt class="literal"><span class="pre">x</span></tt> <tt c
|
|||||||
<pre class="last literal-block">
|
<pre class="last literal-block">
|
||||||
namespace boost { namespace mpl {</pre>
|
namespace boost { namespace mpl {</pre>
|
||||||
<pre class="last literal-block">
|
<pre class="last literal-block">
|
||||||
template<typename T><class T>
|
template<class T>
|
||||||
struct get_##name {
|
struct get_##name {
|
||||||
typedef typename T::name type;
|
typedef typename T::name type;
|
||||||
};</pre>
|
};</pre>
|
||||||
<pre class="last literal-block">
|
<pre class="last literal-block">
|
||||||
}}<typename T>
|
}}
|
||||||
</pre>
|
</pre>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -103,13 +103,13 @@ struct test_type_get_tag_def
|
|||||||
|
|
||||||
}}
|
}}
|
||||||
|
|
||||||
typedef boost::mpl::get_a_tag<<test_type_get_tag_def>test_type_get_tag_def>::type got_the_tag;
|
typedef boost::mpl::get_a_tag<test_type_get_tag_def>::type got_the_tag;
|
||||||
|
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="id1335">
|
<div class="section" id="id1335">
|
||||||
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
|
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
|
||||||
<p><a class="reference internal" href="./macros.html">Macros</a>, <a class="reference internal" href="./has-xxx-trait-named-def.html">BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF</a>
|
<p><a class="reference internal" href="./macros.html">Macros</a>, <a class="reference internal" href="./has-xxx-trait-named-def.html">BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF</a></p>
|
||||||
<!-- Macros/Introspection/BOOST_MPL_GET_TAG_DEF -->
|
<!-- Macros/Introspection/BOOST_MPL_GET_TAG_DEF -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -126,13 +126,13 @@ struct bitset0
|
|||||||
// ...
|
// ...
|
||||||
};
|
};
|
||||||
|
|
||||||
template< typename B0 > struct bitset1
|
template< typename B0 > struct bitset1
|
||||||
{
|
{
|
||||||
typedef bitset_tag tag;
|
typedef bitset_tag tag;
|
||||||
// ...
|
// ...
|
||||||
};
|
};
|
||||||
|
|
||||||
template< typename B0, <em>...,</em> typename B<em>n</em> > struct bitset<em>n</em>
|
template< typename B0, <em>...,</em> typename B<em>n</em> > struct bitset<em>n</em>
|
||||||
{
|
{
|
||||||
typedef bitset_tag tag;
|
typedef bitset_tag tag;
|
||||||
// ...
|
// ...
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<div class="section" id="terminology">
|
<div class="section" id="terminology">
|
||||||
<h1><a class="toc-backref" href="../refmanual.html#id1610">Terminology</a></h1>
|
<h1><a class="toc-backref" href="../refmanual.html#id1610">Terminology</a></h1>
|
||||||
<dl class="docutils" id="overloaded-name">
|
<dl class="docutils" id="overloaded-name">
|
||||||
<span id="label-terminology"></span><dt>Overloaded name</dt>
|
<dt><span id="label-terminology"></span>Overloaded name</dt>
|
||||||
<dd>Overloaded name is a term used in this reference documentation to designate
|
<dd>Overloaded name is a term used in this reference documentation to designate
|
||||||
a metafunction providing more than one public interface. In reality,
|
a metafunction providing more than one public interface. In reality,
|
||||||
class template overloading is nonexistent and the referenced functionality
|
class template overloading is nonexistent and the referenced functionality
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body class="docframe">
|
<body class="docframe">
|
||||||
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./changes-in-boost-1-32-0.html" class="navigation-link">Prev</a> <a href="./iterator-protocol.html" class="navigation-link">Next</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group">Back <a href="./iterator-protocol.html" class="navigation-link">Along</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./changes-in-boost-1-32-0.html" class="navigation-link">Up</a> <a href="../index.html" class="navigation-link">Home</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./tutorial_toc.html" class="navigation-link">Full TOC</a></span></td>
|
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./changes-in-boost-1-32-0.html" class="navigation-link">Prev</a> <a href="./iterator-protocol.html" class="navigation-link">Next</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group">Back <a href="./iterator-protocol.html" class="navigation-link">Along</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./changes-in-boost-1-32-0.html" class="navigation-link">Up</a> <a href="../index.html" class="navigation-link">Home</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./tutorial_toc.html" class="navigation-link">Full TOC</a></span></td>
|
||||||
<td class="header-group page-location"><a href="../index.html" class="navigation-link">Front Page</a> / <a href="./changelog-history.html" class="navigation-link">Changelog & History</a> / <a href="./changes-in-boost-1-32-0.html" class="navigation-link">Changes in Boost 1.32.0 Release</a> / <a href="./apply-lambda-semantics.html" class="navigation-link">apply/lambda Semantics</a></td>
|
<td class="header-group page-location"><a href="../index.html" class="navigation-link">Front Page</a> / <a href="./changelog-history.html" class="navigation-link">Changelog & History</a> / <a href="./changes-in-boost-1-32-0.html" class="navigation-link">Changes in Boost 1.32.0 Release</a> / <a href="./apply-lambda-semantics.html" class="navigation-link">apply/lambda Semantics</a></td>
|
||||||
</tr></table><div class="header-separator"></div>
|
</tr></table><div class="header-separator"></div>
|
||||||
<div class="section" id="apply-lambda-semantics">
|
<div class="section" id="apply-lambda-semantics">
|
||||||
<h1><a class="toc-backref" href="./changes-in-boost-1-32-0.html#id64" name="apply-lambda-semantics"><tt class="literal"><span class="pre">apply</span></tt>/<tt class="literal"><span class="pre">lambda</span></tt> Semantics</a></h1>
|
<h1><a class="toc-backref" href="./changes-in-boost-1-32-0.html#id64" name="apply-lambda-semantics"><tt class="literal"><span class="pre">apply</span></tt>/<tt class="literal"><span class="pre">lambda</span></tt> Semantics</a></h1>
|
||||||
|
|||||||
@@ -7,12 +7,12 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
|
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
|
||||||
<title>THE BOOST MPL LIBRARY: Changelog & History</title>
|
<title>THE BOOST MPL LIBRARY: Changelog & History</title>
|
||||||
<link rel="stylesheet" href="../style.css" type="text/css" />
|
<link rel="stylesheet" href="../style.css" type="text/css" />
|
||||||
</head>
|
</head>
|
||||||
<body class="docframe">
|
<body class="docframe">
|
||||||
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./reference-manual.html" class="navigation-link">Prev</a> <a href="./changes-in-boost-1-32-0.html" class="navigation-link">Next</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./reference-manual.html" class="navigation-link">Back</a> <a href="./technical-details.html" class="navigation-link">Along</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="../index.html" class="navigation-link">Up</a> <a href="../index.html" class="navigation-link">Home</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./tutorial_toc.html" class="navigation-link">Full TOC</a></span></td>
|
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./reference-manual.html" class="navigation-link">Prev</a> <a href="./changes-in-boost-1-32-0.html" class="navigation-link">Next</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./reference-manual.html" class="navigation-link">Back</a> <a href="./technical-details.html" class="navigation-link">Along</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="../index.html" class="navigation-link">Up</a> <a href="../index.html" class="navigation-link">Home</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./tutorial_toc.html" class="navigation-link">Full TOC</a></span></td>
|
||||||
<td class="header-group page-location"><a href="../index.html" class="navigation-link">Front Page</a> / <a href="./changelog-history.html" class="navigation-link">Changelog & History</a></td>
|
<td class="header-group page-location"><a href="../index.html" class="navigation-link">Front Page</a> / <a href="./changelog-history.html" class="navigation-link">Changelog & History</a></td>
|
||||||
</tr></table><div class="header-separator"></div>
|
</tr></table><div class="header-separator"></div>
|
||||||
<div class="section" id="changelog-history">
|
<div class="section" id="changelog-history">
|
||||||
<h1><a class="toc-backref" href="../index.html#id62" name="changelog-history">Changelog & History</a></h1>
|
<h1><a class="toc-backref" href="../index.html#id62" name="changelog-history">Changelog & History</a></h1>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body class="docframe">
|
<body class="docframe">
|
||||||
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./changelog-history.html" class="navigation-link">Prev</a> <a href="./apply-lambda-semantics.html" class="navigation-link">Next</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group">Back Along</span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./changelog-history.html" class="navigation-link">Up</a> <a href="../index.html" class="navigation-link">Home</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./tutorial_toc.html" class="navigation-link">Full TOC</a></span></td>
|
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./changelog-history.html" class="navigation-link">Prev</a> <a href="./apply-lambda-semantics.html" class="navigation-link">Next</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group">Back Along</span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./changelog-history.html" class="navigation-link">Up</a> <a href="../index.html" class="navigation-link">Home</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./tutorial_toc.html" class="navigation-link">Full TOC</a></span></td>
|
||||||
<td class="header-group page-location"><a href="../index.html" class="navigation-link">Front Page</a> / <a href="./changelog-history.html" class="navigation-link">Changelog & History</a> / <a href="./changes-in-boost-1-32-0.html" class="navigation-link">Changes in Boost 1.32.0 Release</a></td>
|
<td class="header-group page-location"><a href="../index.html" class="navigation-link">Front Page</a> / <a href="./changelog-history.html" class="navigation-link">Changelog & History</a> / <a href="./changes-in-boost-1-32-0.html" class="navigation-link">Changes in Boost 1.32.0 Release</a></td>
|
||||||
</tr></table><div class="header-separator"></div>
|
</tr></table><div class="header-separator"></div>
|
||||||
<div class="section" id="changes-in-boost-1-32-0">
|
<div class="section" id="changes-in-boost-1-32-0">
|
||||||
<h1><a class="toc-backref" href="./changelog-history.html#id63" name="changes-in-boost-1-32-0">Changes in Boost 1.32.0 Release</a></h1>
|
<h1><a class="toc-backref" href="./changelog-history.html#id63" name="changes-in-boost-1-32-0">Changes in Boost 1.32.0 Release</a></h1>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body class="docframe">
|
<body class="docframe">
|
||||||
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./apply-lambda-semantics.html" class="navigation-link">Prev</a> <a href="./tag-dispatching-protocol.html" class="navigation-link">Next</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./apply-lambda-semantics.html" class="navigation-link">Back</a> <a href="./tag-dispatching-protocol.html" class="navigation-link">Along</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./changes-in-boost-1-32-0.html" class="navigation-link">Up</a> <a href="../index.html" class="navigation-link">Home</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./tutorial_toc.html" class="navigation-link">Full TOC</a></span></td>
|
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./apply-lambda-semantics.html" class="navigation-link">Prev</a> <a href="./tag-dispatching-protocol.html" class="navigation-link">Next</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./apply-lambda-semantics.html" class="navigation-link">Back</a> <a href="./tag-dispatching-protocol.html" class="navigation-link">Along</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./changes-in-boost-1-32-0.html" class="navigation-link">Up</a> <a href="../index.html" class="navigation-link">Home</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./tutorial_toc.html" class="navigation-link">Full TOC</a></span></td>
|
||||||
<td class="header-group page-location"><a href="../index.html" class="navigation-link">Front Page</a> / <a href="./changelog-history.html" class="navigation-link">Changelog & History</a> / <a href="./changes-in-boost-1-32-0.html" class="navigation-link">Changes in Boost 1.32.0 Release</a> / <a href="./iterator-protocol.html" class="navigation-link">Iterator Protocol</a></td>
|
<td class="header-group page-location"><a href="../index.html" class="navigation-link">Front Page</a> / <a href="./changelog-history.html" class="navigation-link">Changelog & History</a> / <a href="./changes-in-boost-1-32-0.html" class="navigation-link">Changes in Boost 1.32.0 Release</a> / <a href="./iterator-protocol.html" class="navigation-link">Iterator Protocol</a></td>
|
||||||
</tr></table><div class="header-separator"></div>
|
</tr></table><div class="header-separator"></div>
|
||||||
<div class="section" id="iterator-protocol">
|
<div class="section" id="iterator-protocol">
|
||||||
<h1><a class="toc-backref" href="./changes-in-boost-1-32-0.html#id65" name="iterator-protocol">Iterator Protocol</a></h1>
|
<h1><a class="toc-backref" href="./changes-in-boost-1-32-0.html#id65" name="iterator-protocol">Iterator Protocol</a></h1>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body class="docframe">
|
<body class="docframe">
|
||||||
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./renaming-cleanup.html" class="navigation-link">Prev</a> <a href="./technical-details.html" class="navigation-link">Next</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./renaming-cleanup.html" class="navigation-link">Back</a> Along</span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./changes-in-boost-1-32-0.html" class="navigation-link">Up</a> <a href="../index.html" class="navigation-link">Home</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./tutorial_toc.html" class="navigation-link">Full TOC</a></span></td>
|
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./renaming-cleanup.html" class="navigation-link">Prev</a> <a href="./technical-details.html" class="navigation-link">Next</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./renaming-cleanup.html" class="navigation-link">Back</a> Along</span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./changes-in-boost-1-32-0.html" class="navigation-link">Up</a> <a href="../index.html" class="navigation-link">Home</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./tutorial_toc.html" class="navigation-link">Full TOC</a></span></td>
|
||||||
<td class="header-group page-location"><a href="../index.html" class="navigation-link">Front Page</a> / <a href="./changelog-history.html" class="navigation-link">Changelog & History</a> / <a href="./changes-in-boost-1-32-0.html" class="navigation-link">Changes in Boost 1.32.0 Release</a> / <a href="./miscellaneous.html" class="navigation-link">Miscellaneous</a></td>
|
<td class="header-group page-location"><a href="../index.html" class="navigation-link">Front Page</a> / <a href="./changelog-history.html" class="navigation-link">Changelog & History</a> / <a href="./changes-in-boost-1-32-0.html" class="navigation-link">Changes in Boost 1.32.0 Release</a> / <a href="./miscellaneous.html" class="navigation-link">Miscellaneous</a></td>
|
||||||
</tr></table><div class="header-separator"></div>
|
</tr></table><div class="header-separator"></div>
|
||||||
<div class="section" id="miscellaneous">
|
<div class="section" id="miscellaneous">
|
||||||
<h1><a class="toc-backref" href="./changes-in-boost-1-32-0.html#id69" name="miscellaneous">Miscellaneous</a></h1>
|
<h1><a class="toc-backref" href="./changes-in-boost-1-32-0.html#id69" name="miscellaneous">Miscellaneous</a></h1>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body class="docframe">
|
<body class="docframe">
|
||||||
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./tag-dispatching-protocol.html" class="navigation-link">Prev</a> <a href="./renaming-cleanup.html" class="navigation-link">Next</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./tag-dispatching-protocol.html" class="navigation-link">Back</a> <a href="./renaming-cleanup.html" class="navigation-link">Along</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./changes-in-boost-1-32-0.html" class="navigation-link">Up</a> <a href="../index.html" class="navigation-link">Home</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./tutorial_toc.html" class="navigation-link">Full TOC</a></span></td>
|
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./tag-dispatching-protocol.html" class="navigation-link">Prev</a> <a href="./renaming-cleanup.html" class="navigation-link">Next</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./tag-dispatching-protocol.html" class="navigation-link">Back</a> <a href="./renaming-cleanup.html" class="navigation-link">Along</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./changes-in-boost-1-32-0.html" class="navigation-link">Up</a> <a href="../index.html" class="navigation-link">Home</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./tutorial_toc.html" class="navigation-link">Full TOC</a></span></td>
|
||||||
<td class="header-group page-location"><a href="../index.html" class="navigation-link">Front Page</a> / <a href="./changelog-history.html" class="navigation-link">Changelog & History</a> / <a href="./changes-in-boost-1-32-0.html" class="navigation-link">Changes in Boost 1.32.0 Release</a> / <a href="./numeric-metafunction.html" class="navigation-link">Numeric Metafunction Protocol/Infrastructure</a></td>
|
<td class="header-group page-location"><a href="../index.html" class="navigation-link">Front Page</a> / <a href="./changelog-history.html" class="navigation-link">Changelog & History</a> / <a href="./changes-in-boost-1-32-0.html" class="navigation-link">Changes in Boost 1.32.0 Release</a> / <a href="./numeric-metafunction.html" class="navigation-link">Numeric Metafunction Protocol/Infrastructure</a></td>
|
||||||
</tr></table><div class="header-separator"></div>
|
</tr></table><div class="header-separator"></div>
|
||||||
<div class="section" id="numeric-metafunction">
|
<div class="section" id="numeric-metafunction">
|
||||||
<h1><a class="toc-backref" href="./changes-in-boost-1-32-0.html#id67" name="numeric-metafunction">Numeric Metafunction Protocol/Infrastructure</a></h1>
|
<h1><a class="toc-backref" href="./changes-in-boost-1-32-0.html#id67" name="numeric-metafunction">Numeric Metafunction Protocol/Infrastructure</a></h1>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body class="docframe">
|
<body class="docframe">
|
||||||
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./numeric-metafunction.html" class="navigation-link">Prev</a> <a href="./miscellaneous.html" class="navigation-link">Next</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./numeric-metafunction.html" class="navigation-link">Back</a> <a href="./miscellaneous.html" class="navigation-link">Along</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./changes-in-boost-1-32-0.html" class="navigation-link">Up</a> <a href="../index.html" class="navigation-link">Home</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./tutorial_toc.html" class="navigation-link">Full TOC</a></span></td>
|
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./numeric-metafunction.html" class="navigation-link">Prev</a> <a href="./miscellaneous.html" class="navigation-link">Next</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./numeric-metafunction.html" class="navigation-link">Back</a> <a href="./miscellaneous.html" class="navigation-link">Along</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./changes-in-boost-1-32-0.html" class="navigation-link">Up</a> <a href="../index.html" class="navigation-link">Home</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./tutorial_toc.html" class="navigation-link">Full TOC</a></span></td>
|
||||||
<td class="header-group page-location"><a href="../index.html" class="navigation-link">Front Page</a> / <a href="./changelog-history.html" class="navigation-link">Changelog & History</a> / <a href="./changes-in-boost-1-32-0.html" class="navigation-link">Changes in Boost 1.32.0 Release</a> / <a href="./renaming-cleanup.html" class="navigation-link">Renaming/Cleanup</a></td>
|
<td class="header-group page-location"><a href="../index.html" class="navigation-link">Front Page</a> / <a href="./changelog-history.html" class="navigation-link">Changelog & History</a> / <a href="./changes-in-boost-1-32-0.html" class="navigation-link">Changes in Boost 1.32.0 Release</a> / <a href="./renaming-cleanup.html" class="navigation-link">Renaming/Cleanup</a></td>
|
||||||
</tr></table><div class="header-separator"></div>
|
</tr></table><div class="header-separator"></div>
|
||||||
<div class="section" id="renaming-cleanup">
|
<div class="section" id="renaming-cleanup">
|
||||||
<h1><a class="toc-backref" href="./changes-in-boost-1-32-0.html#id68" name="renaming-cleanup">Renaming/Cleanup</a></h1>
|
<h1><a class="toc-backref" href="./changes-in-boost-1-32-0.html#id68" name="renaming-cleanup">Renaming/Cleanup</a></h1>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body class="docframe">
|
<body class="docframe">
|
||||||
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./iterator-protocol.html" class="navigation-link">Prev</a> <a href="./numeric-metafunction.html" class="navigation-link">Next</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./iterator-protocol.html" class="navigation-link">Back</a> <a href="./numeric-metafunction.html" class="navigation-link">Along</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./changes-in-boost-1-32-0.html" class="navigation-link">Up</a> <a href="../index.html" class="navigation-link">Home</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./tutorial_toc.html" class="navigation-link">Full TOC</a></span></td>
|
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./iterator-protocol.html" class="navigation-link">Prev</a> <a href="./numeric-metafunction.html" class="navigation-link">Next</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./iterator-protocol.html" class="navigation-link">Back</a> <a href="./numeric-metafunction.html" class="navigation-link">Along</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./changes-in-boost-1-32-0.html" class="navigation-link">Up</a> <a href="../index.html" class="navigation-link">Home</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./tutorial_toc.html" class="navigation-link">Full TOC</a></span></td>
|
||||||
<td class="header-group page-location"><a href="../index.html" class="navigation-link">Front Page</a> / <a href="./changelog-history.html" class="navigation-link">Changelog & History</a> / <a href="./changes-in-boost-1-32-0.html" class="navigation-link">Changes in Boost 1.32.0 Release</a> / <a href="./tag-dispatching-protocol.html" class="navigation-link">Tag Dispatching Protocol</a></td>
|
<td class="header-group page-location"><a href="../index.html" class="navigation-link">Front Page</a> / <a href="./changelog-history.html" class="navigation-link">Changelog & History</a> / <a href="./changes-in-boost-1-32-0.html" class="navigation-link">Changes in Boost 1.32.0 Release</a> / <a href="./tag-dispatching-protocol.html" class="navigation-link">Tag Dispatching Protocol</a></td>
|
||||||
</tr></table><div class="header-separator"></div>
|
</tr></table><div class="header-separator"></div>
|
||||||
<div class="section" id="tag-dispatching-protocol">
|
<div class="section" id="tag-dispatching-protocol">
|
||||||
<h1><a class="toc-backref" href="./changes-in-boost-1-32-0.html#id66" name="tag-dispatching-protocol">Tag Dispatching Protocol</a></h1>
|
<h1><a class="toc-backref" href="./changes-in-boost-1-32-0.html#id66" name="tag-dispatching-protocol">Tag Dispatching Protocol</a></h1>
|
||||||
|
|||||||
+3
-1
@@ -7,9 +7,11 @@
|
|||||||
|
|
||||||
import testing ;
|
import testing ;
|
||||||
|
|
||||||
|
project : requirements <library>/boost/mpl//boost_mpl ;
|
||||||
|
|
||||||
test-suite "mpl-examples"
|
test-suite "mpl-examples"
|
||||||
: [ run inherit_linearly.cpp ]
|
: [ run inherit_linearly.cpp ]
|
||||||
[ compile integer.cpp ]
|
[ compile integer.cpp ]
|
||||||
[ run tuple_from_list.cpp ]
|
[ run tuple_from_list.cpp : : : <library>/boost/tuple//boost_tuple ]
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
@@ -28,26 +28,22 @@
|
|||||||
// 'or' and 'and' macros, see http://tinyurl.com/3et69; 'defined(and)'
|
// 'or' and 'and' macros, see http://tinyurl.com/3et69; 'defined(and)'
|
||||||
// has to be checked in a separate condition, otherwise GCC complains
|
// has to be checked in a separate condition, otherwise GCC complains
|
||||||
// about 'and' being an alternative token
|
// about 'and' being an alternative token
|
||||||
#if defined(_MSC_VER) && !defined(__clang__)
|
#if defined(_MSC_EXTENSIONS)
|
||||||
#ifndef __GCCXML__
|
#if defined(and)
|
||||||
#if defined(and)
|
|
||||||
# pragma push_macro("and")
|
# pragma push_macro("and")
|
||||||
# undef and
|
# undef and
|
||||||
# define and(x)
|
# define and(x)
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
# define BOOST_MPL_PREPROCESSED_HEADER and.hpp
|
# define BOOST_MPL_PREPROCESSED_HEADER and.hpp
|
||||||
# include <boost/mpl/aux_/include_preprocessed.hpp>
|
# include <boost/mpl/aux_/include_preprocessed.hpp>
|
||||||
|
|
||||||
#if defined(_MSC_VER) && !defined(__clang__)
|
#if defined(_MSC_EXTENSIONS)
|
||||||
#ifndef __GCCXML__
|
#if defined(and)
|
||||||
#if defined(and)
|
|
||||||
# pragma pop_macro("and")
|
# pragma pop_macro("and")
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
#include <boost/mpl/if.hpp>
|
#include <boost/mpl/if.hpp>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
|
#if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x610)) \
|
||||||
|| (BOOST_MPL_CFG_GCC != 0) \
|
|| (BOOST_MPL_CFG_GCC != 0) \
|
||||||
|| BOOST_WORKAROUND(__IBMCPP__, <= 600)
|
|| BOOST_WORKAROUND(__IBMCPP__, <= 600)
|
||||||
# define BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES
|
# define BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES
|
||||||
@@ -47,16 +47,16 @@
|
|||||||
|
|
||||||
#if BOOST_WORKAROUND(__MWERKS__, < 0x3202) \
|
#if BOOST_WORKAROUND(__MWERKS__, < 0x3202) \
|
||||||
|| BOOST_WORKAROUND(__EDG_VERSION__, <= 238) \
|
|| BOOST_WORKAROUND(__EDG_VERSION__, <= 238) \
|
||||||
|| BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
|
|| BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x610)) \
|
||||||
|| BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
|
|| BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
|
||||||
# define BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER
|
# define BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// agurt, 10/nov/06: use enums for Borland (which cannot cope with static constants)
|
// 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
|
// and GCC/PGI/Clang (which issues "unused variable" warnings when static constants are used
|
||||||
// at a function scope)
|
// at a function scope)
|
||||||
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
|
#if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x610)) \
|
||||||
|| (BOOST_MPL_CFG_GCC != 0) || (BOOST_MPL_CFG_GPU != 0) || defined(__PGI)
|
|| (BOOST_MPL_CFG_GCC != 0) || (BOOST_MPL_CFG_GPU != 0) || defined(__PGI) || defined(__clang__)
|
||||||
# define BOOST_MPL_AUX_ASSERT_CONSTANT(T, expr) enum { expr }
|
# define BOOST_MPL_AUX_ASSERT_CONSTANT(T, expr) enum { expr }
|
||||||
#else
|
#else
|
||||||
# define BOOST_MPL_AUX_ASSERT_CONSTANT(T, expr) BOOST_STATIC_CONSTANT(T, expr)
|
# define BOOST_MPL_AUX_ASSERT_CONSTANT(T, expr) BOOST_STATIC_CONSTANT(T, expr)
|
||||||
@@ -184,7 +184,7 @@ template< typename P > struct assert_arg_pred_not
|
|||||||
typedef typename assert_arg_pred_impl<p>::type type;
|
typedef typename assert_arg_pred_impl<p>::type type;
|
||||||
};
|
};
|
||||||
|
|
||||||
#if defined(BOOST_GCC) && BOOST_GCC >= 80000
|
#if BOOST_WORKAROUND(BOOST_GCC_VERSION, >= 80000)
|
||||||
#define BOOST_MPL_IGNORE_PARENTHESES_WARNING
|
#define BOOST_MPL_IGNORE_PARENTHESES_WARNING
|
||||||
#pragma GCC diagnostic push
|
#pragma GCC diagnostic push
|
||||||
#pragma GCC diagnostic ignored "-Wparentheses"
|
#pragma GCC diagnostic ignored "-Wparentheses"
|
||||||
@@ -297,7 +297,7 @@ BOOST_MPL_AUX_ASSERT_CONSTANT( \
|
|||||||
std::size_t \
|
std::size_t \
|
||||||
, BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
|
, BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
|
||||||
boost::mpl::assertion_failed<false>( \
|
boost::mpl::assertion_failed<false>( \
|
||||||
boost::mpl::assert_arg( (void (*) pred)0, 1 ) \
|
boost::mpl::assert_arg( (void (*) pred)BOOST_NULLPTR, 1 ) \
|
||||||
) \
|
) \
|
||||||
) \
|
) \
|
||||||
) \
|
) \
|
||||||
@@ -310,7 +310,7 @@ BOOST_MPL_AUX_ASSERT_CONSTANT( \
|
|||||||
enum { \
|
enum { \
|
||||||
BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
|
BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
|
||||||
boost::mpl::assertion<false>::failed( \
|
boost::mpl::assertion<false>::failed( \
|
||||||
boost::mpl::assert_not_arg( (void (*) pred)0, 1 ) \
|
boost::mpl::assert_not_arg( (void (*) pred)BOOST_NULLPTR, 1 ) \
|
||||||
) \
|
) \
|
||||||
) \
|
) \
|
||||||
}\
|
}\
|
||||||
@@ -321,7 +321,7 @@ BOOST_MPL_AUX_ASSERT_CONSTANT( \
|
|||||||
std::size_t \
|
std::size_t \
|
||||||
, BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
|
, BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
|
||||||
boost::mpl::assertion_failed<false>( \
|
boost::mpl::assertion_failed<false>( \
|
||||||
boost::mpl::assert_not_arg( (void (*) pred)0, 1 ) \
|
boost::mpl::assert_not_arg( (void (*) pred)BOOST_NULLPTR, 1 ) \
|
||||||
) \
|
) \
|
||||||
) \
|
) \
|
||||||
) \
|
) \
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
#include <boost/mpl/aux_/config/workaround.hpp>
|
#include <boost/mpl/aux_/config/workaround.hpp>
|
||||||
|
|
||||||
#if BOOST_WORKAROUND(__BORLANDC__, < 0x561)
|
#if BOOST_WORKAROUND(BOOST_BORLANDC, < 0x561)
|
||||||
// agurt, 12/nov/02: to suppress the bogus "Cannot have both a template class
|
// agurt, 12/nov/02: to suppress the bogus "Cannot have both a template class
|
||||||
// and function named 'xxx'" diagnostic
|
// and function named 'xxx'" diagnostic
|
||||||
# define BOOST_MPL_AUX_COMMON_NAME_WKND(name) \
|
# define BOOST_MPL_AUX_COMMON_NAME_WKND(name) \
|
||||||
@@ -29,6 +29,6 @@ template< typename > void name(); \
|
|||||||
|
|
||||||
# define BOOST_MPL_AUX_COMMON_NAME_WKND(name) /**/
|
# define BOOST_MPL_AUX_COMMON_NAME_WKND(name) /**/
|
||||||
|
|
||||||
#endif // __BORLANDC__
|
#endif // BOOST_BORLANDC
|
||||||
|
|
||||||
#endif // BOOST_MPL_AUX_COMMON_NAME_WKND_HPP_INCLUDED
|
#endif // BOOST_MPL_AUX_COMMON_NAME_WKND_HPP_INCLUDED
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
#if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE) \
|
#if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE) \
|
||||||
&& ( BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \
|
&& ( BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \
|
||||||
|| BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
|
|| BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x610)) \
|
||||||
|| BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) \
|
|| BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) \
|
||||||
|| BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) \
|
|| BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) \
|
||||||
|| BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, BOOST_TESTED_AT(810)) \
|
|| BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, BOOST_TESTED_AT(810)) \
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
#if !defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) \
|
#if !defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) \
|
||||||
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \
|
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \
|
||||||
&& ( BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
|
&& ( BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x610)) \
|
||||||
|| BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
|
|| BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -18,8 +18,8 @@
|
|||||||
|
|
||||||
#if !defined(BOOST_MPL_CFG_BCC590_WORKAROUNDS) \
|
#if !defined(BOOST_MPL_CFG_BCC590_WORKAROUNDS) \
|
||||||
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \
|
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \
|
||||||
&& BOOST_WORKAROUND(__BORLANDC__, >= 0x590) \
|
&& BOOST_WORKAROUND(BOOST_BORLANDC, >= 0x590) \
|
||||||
&& BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
|
&& BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x610))
|
||||||
|
|
||||||
# define BOOST_MPL_CFG_BCC590_WORKAROUNDS
|
# define BOOST_MPL_CFG_BCC590_WORKAROUNDS
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
#if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) \
|
#if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) \
|
||||||
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \
|
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \
|
||||||
&& ( BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
|
&& ( BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
|
||||||
|| BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
|
|| BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x610)) \
|
||||||
)
|
)
|
||||||
|
|
||||||
# define BOOST_MPL_CFG_NO_BIND_TEMPLATE
|
# define BOOST_MPL_CFG_NO_BIND_TEMPLATE
|
||||||
|
|||||||
@@ -32,10 +32,10 @@
|
|||||||
# elif BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304))
|
# elif BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304))
|
||||||
# define BOOST_MPL_CFG_COMPILER_DIR gcc
|
# define BOOST_MPL_CFG_COMPILER_DIR gcc
|
||||||
|
|
||||||
# elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
|
# elif BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x610))
|
||||||
# if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
|
# if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
|
||||||
# define BOOST_MPL_CFG_COMPILER_DIR bcc551
|
# define BOOST_MPL_CFG_COMPILER_DIR bcc551
|
||||||
# elif BOOST_WORKAROUND(__BORLANDC__, >= 0x590)
|
# elif BOOST_WORKAROUND(BOOST_BORLANDC, >= 0x590)
|
||||||
# define BOOST_MPL_CFG_COMPILER_DIR bcc
|
# define BOOST_MPL_CFG_COMPILER_DIR bcc
|
||||||
# else
|
# else
|
||||||
# define BOOST_MPL_CFG_COMPILER_DIR bcc_pre590
|
# define BOOST_MPL_CFG_COMPILER_DIR bcc_pre590
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
#if !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC) \
|
#if !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC) \
|
||||||
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \
|
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \
|
||||||
&& BOOST_WORKAROUND(__BORLANDC__, < 0x582)
|
&& BOOST_WORKAROUND(BOOST_BORLANDC, < 0x582)
|
||||||
|
|
||||||
# define BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC
|
# define BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC
|
||||||
|
|
||||||
|
|||||||
@@ -24,8 +24,8 @@
|
|||||||
|
|
||||||
#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \
|
#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \
|
||||||
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \
|
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \
|
||||||
&& BOOST_WORKAROUND(__BORLANDC__, >= 0x560) \
|
&& BOOST_WORKAROUND(BOOST_BORLANDC, >= 0x560) \
|
||||||
&& BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
|
&& BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x610))
|
||||||
|
|
||||||
# define BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES
|
# define BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
#if !defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \
|
#if !defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \
|
||||||
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \
|
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \
|
||||||
&& ( BOOST_WORKAROUND(__MWERKS__, <= 0x3001) \
|
&& ( BOOST_WORKAROUND(__MWERKS__, <= 0x3001) \
|
||||||
|| BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
|
|| BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x610)) \
|
||||||
|| defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \
|
|| defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) \
|
#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) \
|
||||||
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \
|
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \
|
||||||
&& BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
|
&& BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x610))
|
||||||
|
|
||||||
# define BOOST_MPL_CFG_NO_NESTED_FORWARDING
|
# define BOOST_MPL_CFG_NO_NESTED_FORWARDING
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
#if !defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) \
|
#if !defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) \
|
||||||
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \
|
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \
|
||||||
&& BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
|
&& BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x610))
|
||||||
|
|
||||||
# define BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS
|
# define BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
#if !defined(BOOST_MPL_CFG_USE_OPERATORS_OVERLOADING) \
|
#if !defined(BOOST_MPL_CFG_USE_OPERATORS_OVERLOADING) \
|
||||||
&& ( BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
|
&& ( BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
|
||||||
|| BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
|
|| BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x610)) \
|
||||||
|| BOOST_WORKAROUND(__EDG_VERSION__, <= 245) \
|
|| BOOST_WORKAROUND(__EDG_VERSION__, <= 245) \
|
||||||
|| BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, <= 0x0295) \
|
|| BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, <= 0x0295) \
|
||||||
|| BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) \
|
|| BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) \
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
#if !defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) \
|
#if !defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) \
|
||||||
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \
|
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \
|
||||||
&& ( BOOST_WORKAROUND(__BORLANDC__, < 0x590) \
|
&& ( BOOST_WORKAROUND(BOOST_BORLANDC, < 0x590) \
|
||||||
|| BOOST_WORKAROUND(__MWERKS__, < 0x3001) \
|
|| BOOST_WORKAROUND(__MWERKS__, < 0x3001) \
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
#if !defined(BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION) \
|
#if !defined(BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION) \
|
||||||
&& ( BOOST_WORKAROUND(__MWERKS__, <= 0x3003) \
|
&& ( BOOST_WORKAROUND(__MWERKS__, <= 0x3003) \
|
||||||
|| BOOST_WORKAROUND(__BORLANDC__, < 0x582) \
|
|| BOOST_WORKAROUND(BOOST_BORLANDC, < 0x582) \
|
||||||
|| BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502)) \
|
|| BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502)) \
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
#if !defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \
|
#if !defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \
|
||||||
&& ( defined(BOOST_NO_TEMPLATE_TEMPLATES) \
|
&& ( defined(BOOST_NO_TEMPLATE_TEMPLATES) \
|
||||||
|| BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x590) ) \
|
|| BOOST_WORKAROUND( BOOST_BORLANDC, BOOST_TESTED_AT( 0x590) ) \
|
||||||
)
|
)
|
||||||
|
|
||||||
# define BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS
|
# define BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
#if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \
|
#if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \
|
||||||
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \
|
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \
|
||||||
&& ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0302)) \
|
&& ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0302)) \
|
||||||
|| BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
|
|| BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x610)) \
|
||||||
)
|
)
|
||||||
|
|
||||||
# define BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING
|
# define BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ namespace boost { namespace mpl {
|
|||||||
template< typename Tag > struct count_impl
|
template< typename Tag > struct count_impl
|
||||||
{
|
{
|
||||||
template< typename Sequence, typename T > struct apply
|
template< typename Sequence, typename T > struct apply
|
||||||
#if BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x561))
|
#if BOOST_WORKAROUND(BOOST_BORLANDC,BOOST_TESTED_AT(0x561))
|
||||||
{
|
{
|
||||||
typedef typename count_if< Sequence,same_as<T> >::type type;
|
typedef typename count_if< Sequence,same_as<T> >::type type;
|
||||||
BOOST_STATIC_CONSTANT(int, value = BOOST_MPL_AUX_VALUE_WKND(type)::value);
|
BOOST_STATIC_CONSTANT(int, value = BOOST_MPL_AUX_VALUE_WKND(type)::value);
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ struct AUX778076_FOLD_IMPL_NAME;
|
|||||||
|
|
||||||
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
|
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
|
||||||
|
|
||||||
# if !BOOST_WORKAROUND(__BORLANDC__, < 0x600)
|
# if !BOOST_WORKAROUND(BOOST_BORLANDC, < 0x600)
|
||||||
|
|
||||||
# define BOOST_PP_ITERATION_PARAMS_1 \
|
# define BOOST_PP_ITERATION_PARAMS_1 \
|
||||||
(3,(0, BOOST_MPL_LIMIT_UNROLLING, <boost/mpl/aux_/fold_impl_body.hpp>))
|
(3,(0, BOOST_MPL_LIMIT_UNROLLING, <boost/mpl/aux_/fold_impl_body.hpp>))
|
||||||
@@ -125,7 +125,7 @@ struct AUX778076_FOLD_IMPL_NAME<-1,Last,Last,State,ForwardOp>
|
|||||||
typedef Last iterator;
|
typedef Last iterator;
|
||||||
};
|
};
|
||||||
|
|
||||||
# else // BOOST_WORKAROUND(__BORLANDC__, < 0x600)
|
# else // BOOST_WORKAROUND(BOOST_BORLANDC, < 0x600)
|
||||||
|
|
||||||
// Borland have some serious problems with the unrolled version, so
|
// Borland have some serious problems with the unrolled version, so
|
||||||
// we always use a basic implementation
|
// we always use a basic implementation
|
||||||
@@ -164,7 +164,7 @@ struct AUX778076_FOLD_IMPL_NAME<N,Last,Last,State,ForwardOp >
|
|||||||
typedef state type;
|
typedef state type;
|
||||||
};
|
};
|
||||||
|
|
||||||
# endif // BOOST_WORKAROUND(__BORLANDC__, < 0x600)
|
# endif // BOOST_WORKAROUND(BOOST_BORLANDC, < 0x600)
|
||||||
|
|
||||||
#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
# include <boost/mpl/if.hpp>
|
# include <boost/mpl/if.hpp>
|
||||||
# include <boost/mpl/bool.hpp>
|
# include <boost/mpl/bool.hpp>
|
||||||
# include <boost/mpl/aux_/msvc_is_class.hpp>
|
# include <boost/mpl/aux_/msvc_is_class.hpp>
|
||||||
#elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
|
#elif BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x610))
|
||||||
# include <boost/mpl/if.hpp>
|
# include <boost/mpl/if.hpp>
|
||||||
# include <boost/mpl/bool.hpp>
|
# include <boost/mpl/bool.hpp>
|
||||||
# include <boost/mpl/aux_/yes_no.hpp>
|
# include <boost/mpl/aux_/yes_no.hpp>
|
||||||
@@ -62,7 +62,7 @@ struct has_rebind
|
|||||||
template< typename T > struct has_rebind_tag {};
|
template< typename T > struct has_rebind_tag {};
|
||||||
no_tag operator|(has_rebind_tag<int>, void const volatile*);
|
no_tag operator|(has_rebind_tag<int>, void const volatile*);
|
||||||
|
|
||||||
# if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
|
# if !BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x610))
|
||||||
template< typename T >
|
template< typename T >
|
||||||
struct has_rebind
|
struct has_rebind
|
||||||
{
|
{
|
||||||
@@ -71,7 +71,7 @@ struct has_rebind
|
|||||||
sizeof(has_rebind_tag<int>() | get()) == sizeof(yes_tag)
|
sizeof(has_rebind_tag<int>() | get()) == sizeof(yes_tag)
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
# else // __BORLANDC__
|
# else // BOOST_BORLANDC
|
||||||
template< typename T >
|
template< typename T >
|
||||||
struct has_rebind_impl
|
struct has_rebind_impl
|
||||||
{
|
{
|
||||||
@@ -90,7 +90,7 @@ struct has_rebind
|
|||||||
>::type
|
>::type
|
||||||
{
|
{
|
||||||
};
|
};
|
||||||
# endif // __BORLANDC__
|
# endif // BOOST_BORLANDC
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -56,14 +56,15 @@ struct AUX_WRAPPER_NAME
|
|||||||
// have to #ifdef here: some compilers don't like the 'N + 1' form (MSVC),
|
// 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
|
// while some other don't like 'value + 1' (Borland), and some don't like
|
||||||
// either
|
// either
|
||||||
#if BOOST_WORKAROUND(__EDG_VERSION__, <= 243)
|
#if BOOST_WORKAROUND(__EDG_VERSION__, <= 243) \
|
||||||
|
|| __cplusplus >= 201103L
|
||||||
private:
|
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, 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)));
|
BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, prior_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1)));
|
||||||
public:
|
public:
|
||||||
typedef AUX_WRAPPER_INST(next_value) next;
|
typedef AUX_WRAPPER_INST(next_value) next;
|
||||||
typedef AUX_WRAPPER_INST(prior_value) prior;
|
typedef AUX_WRAPPER_INST(prior_value) prior;
|
||||||
#elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \
|
#elif BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x561)) \
|
||||||
|| BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502)) \
|
|| BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502)) \
|
||||||
|| (BOOST_WORKAROUND(__HP_aCC, <= 53800) && (BOOST_WORKAROUND(__hpxstd98, != 1)))
|
|| (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)) ) next;
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ template< typename T > struct has_rebind_tag;
|
|||||||
typedef BOOST_PP_CAT(name,_rebind) rebind; \
|
typedef BOOST_PP_CAT(name,_rebind) rebind; \
|
||||||
/**/
|
/**/
|
||||||
|
|
||||||
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
|
#if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x610))
|
||||||
# define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \
|
# define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \
|
||||||
template< BOOST_MPL_PP_PARAMS(i,typename T) > \
|
template< BOOST_MPL_PP_PARAMS(i,typename T) > \
|
||||||
::boost::mpl::aux::yes_tag operator|( \
|
::boost::mpl::aux::yes_tag operator|( \
|
||||||
@@ -134,7 +134,7 @@ template< BOOST_MPL_PP_PARAMS(i,typename T) > \
|
|||||||
# define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) /**/
|
# define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) /**/
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
# if !defined(__BORLANDC__)
|
# if !defined(BOOST_BORLANDC)
|
||||||
# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
|
# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
|
||||||
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
|
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
|
||||||
}; \
|
}; \
|
||||||
@@ -160,7 +160,7 @@ class BOOST_PP_CAT(name,_rebind) \
|
|||||||
typedef typename name< BOOST_MPL_PP_PARAMS(i,U) >::type type; \
|
typedef typename name< BOOST_MPL_PP_PARAMS(i,U) >::type type; \
|
||||||
}; \
|
}; \
|
||||||
/**/
|
/**/
|
||||||
# endif // __BORLANDC__
|
# endif // BOOST_BORLANDC
|
||||||
|
|
||||||
#endif // __EDG_VERSION__
|
#endif // __EDG_VERSION__
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
&& !BOOST_WORKAROUND(__EDG_VERSION__, <= 243)
|
&& !BOOST_WORKAROUND(__EDG_VERSION__, <= 243)
|
||||||
# include <boost/mpl/assert.hpp>
|
# include <boost/mpl/assert.hpp>
|
||||||
# define BOOST_MPL_AUX_ASSERT_NOT_NA(x) \
|
# define BOOST_MPL_AUX_ASSERT_NOT_NA(x) \
|
||||||
BOOST_MPL_ASSERT_NOT((boost::mpl::is_na<type>)) \
|
BOOST_MPL_ASSERT_NOT((boost::mpl::is_na<x>)) \
|
||||||
/**/
|
/**/
|
||||||
#else
|
#else
|
||||||
# include <boost/static_assert.hpp>
|
# include <boost/static_assert.hpp>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
#include <boost/mpl/aux_/config/workaround.hpp>
|
#include <boost/mpl/aux_/config/workaround.hpp>
|
||||||
|
|
||||||
#if BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0302)) \
|
#if BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0302)) \
|
||||||
|| BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \
|
|| BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x561)) \
|
||||||
|| BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x530)) \
|
|| BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x530)) \
|
||||||
|| BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
|
|| BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
namespace boost { namespace mpl { namespace aux {
|
namespace boost { namespace mpl { namespace aux {
|
||||||
template< int N > struct arity_tag
|
template< int N > struct arity_tag
|
||||||
{
|
{
|
||||||
typedef char (&type)[N + 1];
|
typedef char (&type)[(unsigned)N + 1];
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
|
|||||||
@@ -29,6 +29,10 @@
|
|||||||
BOOST_PP_CAT(BOOST_MPL_PP_ENUM_,n)(param) \
|
BOOST_PP_CAT(BOOST_MPL_PP_ENUM_,n)(param) \
|
||||||
/**/
|
/**/
|
||||||
|
|
||||||
|
# define BOOST_MPL_PP_ENUM_Z(z_ignored, n, param) \
|
||||||
|
BOOST_PP_CAT(BOOST_MPL_PP_ENUM_,n)(param) \
|
||||||
|
/**/
|
||||||
|
|
||||||
# define BOOST_MPL_PP_ENUM_0(p)
|
# define BOOST_MPL_PP_ENUM_0(p)
|
||||||
# define BOOST_MPL_PP_ENUM_1(p) p
|
# define BOOST_MPL_PP_ENUM_1(p) p
|
||||||
# define BOOST_MPL_PP_ENUM_2(p) p,p
|
# define BOOST_MPL_PP_ENUM_2(p) p,p
|
||||||
@@ -57,6 +61,14 @@
|
|||||||
) \
|
) \
|
||||||
/**/
|
/**/
|
||||||
|
|
||||||
|
# define BOOST_MPL_PP_ENUM_Z(z, n, param) \
|
||||||
|
BOOST_PP_REPEAT_ ## z( \
|
||||||
|
n \
|
||||||
|
, BOOST_MPL_PP_AUX_ENUM_FUNC \
|
||||||
|
, param \
|
||||||
|
) \
|
||||||
|
/**/
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // BOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED
|
#endif // BOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED
|
||||||
|
|||||||
@@ -29,6 +29,10 @@
|
|||||||
BOOST_PP_CAT(BOOST_MPL_PP_PARAMS_,n)(p) \
|
BOOST_PP_CAT(BOOST_MPL_PP_PARAMS_,n)(p) \
|
||||||
/**/
|
/**/
|
||||||
|
|
||||||
|
# define BOOST_MPL_PP_PARAMS_Z(z_ignored,n,p) \
|
||||||
|
BOOST_PP_CAT(BOOST_MPL_PP_PARAMS_,n)(p) \
|
||||||
|
/**/
|
||||||
|
|
||||||
# define BOOST_MPL_PP_PARAMS_0(p)
|
# define BOOST_MPL_PP_PARAMS_0(p)
|
||||||
# define BOOST_MPL_PP_PARAMS_1(p) p##1
|
# 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_2(p) p##1,p##2
|
||||||
@@ -60,6 +64,14 @@
|
|||||||
) \
|
) \
|
||||||
/**/
|
/**/
|
||||||
|
|
||||||
|
# define BOOST_MPL_PP_PARAMS_Z(z, n, param) \
|
||||||
|
BOOST_PP_REPEAT_ ## z( \
|
||||||
|
n \
|
||||||
|
, BOOST_MPL_PP_AUX_PARAM_FUNC \
|
||||||
|
, param \
|
||||||
|
) \
|
||||||
|
/**/
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED
|
#endif // BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
|
|
||||||
namespace boost { namespace mpl { namespace aux {
|
namespace boost { namespace mpl { namespace aux {
|
||||||
|
|
||||||
template< typename T > static T const& ptr_to_ref(T*);
|
template< typename T > T const& ptr_to_ref(T*);
|
||||||
|
|
||||||
}}}
|
}}}
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ template< typename Tag >
|
|||||||
struct size_impl
|
struct size_impl
|
||||||
{
|
{
|
||||||
template< typename Sequence > struct apply
|
template< typename Sequence > struct apply
|
||||||
#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561))
|
#if !BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x561))
|
||||||
: distance<
|
: distance<
|
||||||
typename begin<Sequence>::type
|
typename begin<Sequence>::type
|
||||||
, typename end<Sequence>::type
|
, typename end<Sequence>::type
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
#include <boost/mpl/aux_/config/workaround.hpp>
|
#include <boost/mpl/aux_/config/workaround.hpp>
|
||||||
|
|
||||||
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \
|
#if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x561)) \
|
||||||
|| BOOST_WORKAROUND(__GNUC__, < 3) \
|
|| BOOST_WORKAROUND(__GNUC__, < 3) \
|
||||||
|| BOOST_WORKAROUND(__MWERKS__, <= 0x3001)
|
|| BOOST_WORKAROUND(__MWERKS__, <= 0x3001)
|
||||||
# define BOOST_MPL_AUX_STATIC_CAST(T, expr) (T)(expr)
|
# define BOOST_MPL_AUX_STATIC_CAST(T, expr) (T)(expr)
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ namespace boost { namespace mpl { namespace aux {
|
|||||||
|
|
||||||
template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct arity_tag
|
template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct arity_tag
|
||||||
{
|
{
|
||||||
typedef char (&type)[N + 1];
|
typedef char (&type)[(unsigned)N + 1];
|
||||||
};
|
};
|
||||||
|
|
||||||
# define AUX778076_MAX_ARITY_OP(unused, state, i_) \
|
# define AUX778076_MAX_ARITY_OP(unused, state, i_) \
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
#include <boost/mpl/aux_/config/arrays.hpp>
|
#include <boost/mpl/aux_/config/arrays.hpp>
|
||||||
#include <boost/mpl/aux_/config/msvc.hpp>
|
#include <boost/mpl/aux_/config/msvc.hpp>
|
||||||
#include <boost/mpl/aux_/config/workaround.hpp>
|
#include <boost/mpl/aux_/config/workaround.hpp>
|
||||||
|
#include <cstddef>
|
||||||
|
|
||||||
|
|
||||||
namespace boost { namespace mpl { namespace aux {
|
namespace boost { namespace mpl { namespace aux {
|
||||||
@@ -36,7 +37,7 @@ template<> struct yes_no_tag<true>
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
template< BOOST_MPL_AUX_NTTP_DECL(long, n) > struct weighted_tag
|
template< BOOST_MPL_AUX_NTTP_DECL(std::size_t, n) > struct weighted_tag
|
||||||
{
|
{
|
||||||
#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
||||||
typedef char (&type)[n];
|
typedef char (&type)[n];
|
||||||
|
|||||||
@@ -19,27 +19,23 @@
|
|||||||
// macros, see http://tinyurl.com/ycwdxco; 'defined(bitand)'
|
// macros, see http://tinyurl.com/ycwdxco; 'defined(bitand)'
|
||||||
// has to be checked in a separate condition, otherwise GCC complains
|
// has to be checked in a separate condition, otherwise GCC complains
|
||||||
// about 'bitand' being an alternative token
|
// about 'bitand' being an alternative token
|
||||||
#if defined(_MSC_VER) && !defined(__clang__)
|
#if defined(_MSC_EXTENSIONS)
|
||||||
#ifndef __GCCXML__
|
|
||||||
#if defined(bitand)
|
#if defined(bitand)
|
||||||
# pragma push_macro("bitand")
|
# pragma push_macro("bitand")
|
||||||
# undef bitand
|
# undef bitand
|
||||||
# define bitand(x)
|
# define bitand(x)
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
#define AUX778076_OP_NAME bitand_
|
#define AUX778076_OP_NAME bitand_
|
||||||
#define AUX778076_OP_PREFIX bitand
|
#define AUX778076_OP_PREFIX bitand
|
||||||
#define AUX778076_OP_TOKEN &
|
#define AUX778076_OP_TOKEN &
|
||||||
#include <boost/mpl/aux_/arithmetic_op.hpp>
|
#include <boost/mpl/aux_/arithmetic_op.hpp>
|
||||||
|
|
||||||
#if defined(_MSC_VER) && !defined(__clang__)
|
#if defined(_MSC_EXTENSIONS)
|
||||||
#ifndef __GCCXML__
|
|
||||||
#if defined(bitand)
|
#if defined(bitand)
|
||||||
# pragma pop_macro("bitand")
|
# pragma pop_macro("bitand")
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // BOOST_MPL_BITAND_HPP_INCLUDED
|
#endif // BOOST_MPL_BITAND_HPP_INCLUDED
|
||||||
|
|||||||
@@ -19,27 +19,23 @@
|
|||||||
// macros, see http://tinyurl.com/ycwdxco; 'defined(bitor)'
|
// macros, see http://tinyurl.com/ycwdxco; 'defined(bitor)'
|
||||||
// has to be checked in a separate condition, otherwise GCC complains
|
// has to be checked in a separate condition, otherwise GCC complains
|
||||||
// about 'bitor' being an alternative token
|
// about 'bitor' being an alternative token
|
||||||
#if defined(_MSC_VER) && !defined(__clang__)
|
#if defined(_MSC_EXTENSIONS)
|
||||||
#ifndef __GCCXML__
|
|
||||||
#if defined(bitor)
|
#if defined(bitor)
|
||||||
# pragma push_macro("bitor")
|
# pragma push_macro("bitor")
|
||||||
# undef bitor
|
# undef bitor
|
||||||
# define bitor(x)
|
# define bitor(x)
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
#define AUX778076_OP_NAME bitor_
|
#define AUX778076_OP_NAME bitor_
|
||||||
#define AUX778076_OP_PREFIX bitor
|
#define AUX778076_OP_PREFIX bitor
|
||||||
#define AUX778076_OP_TOKEN |
|
#define AUX778076_OP_TOKEN |
|
||||||
#include <boost/mpl/aux_/arithmetic_op.hpp>
|
#include <boost/mpl/aux_/arithmetic_op.hpp>
|
||||||
|
|
||||||
#if defined(_MSC_VER) && !defined(__clang__)
|
#if defined(_MSC_EXTENSIONS)
|
||||||
#ifndef __GCCXML__
|
|
||||||
#if defined(bitor)
|
#if defined(bitor)
|
||||||
# pragma pop_macro("bitor")
|
# pragma pop_macro("bitor")
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // BOOST_MPL_BITOR_HPP_INCLUDED
|
#endif // BOOST_MPL_BITOR_HPP_INCLUDED
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
#include <boost/preprocessor/repetition/enum_params.hpp>
|
#include <boost/preprocessor/repetition/enum_params.hpp>
|
||||||
#include <boost/preprocessor/repetition/enum_trailing_params.hpp>
|
#include <boost/preprocessor/repetition/enum_trailing_params.hpp>
|
||||||
|
|
||||||
#if BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x590) )
|
#if BOOST_WORKAROUND( BOOST_BORLANDC, BOOST_TESTED_AT(0x590) )
|
||||||
# include <boost/type_traits/is_class.hpp>
|
# include <boost/type_traits/is_class.hpp>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -196,7 +196,7 @@ struct trait \
|
|||||||
}; \
|
}; \
|
||||||
/**/
|
/**/
|
||||||
|
|
||||||
# elif BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x590) )
|
# elif BOOST_WORKAROUND( BOOST_BORLANDC, BOOST_TESTED_AT(0x590) )
|
||||||
|
|
||||||
# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_BCB_DEF(trait, trait_tester, name, default_) \
|
# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_BCB_DEF(trait, trait_tester, name, default_) \
|
||||||
template< typename T, bool IS_CLASS > \
|
template< typename T, bool IS_CLASS > \
|
||||||
@@ -334,7 +334,7 @@ struct trait \
|
|||||||
// correct name but different number of arguments.
|
// correct name but different number of arguments.
|
||||||
# define BOOST_MPL_HAS_MEMBER_MULTI_SUBSTITUTE(z, n, args) \
|
# define BOOST_MPL_HAS_MEMBER_MULTI_SUBSTITUTE(z, n, args) \
|
||||||
template< \
|
template< \
|
||||||
template< BOOST_PP_ENUM_PARAMS(BOOST_PP_INC(n), typename V) > class V \
|
template< BOOST_PP_ENUM_PARAMS_Z(z, BOOST_PP_INC(n), typename V) > class V \
|
||||||
> \
|
> \
|
||||||
struct BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) { \
|
struct BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) { \
|
||||||
}; \
|
}; \
|
||||||
@@ -503,7 +503,7 @@ struct trait \
|
|||||||
z, n, args \
|
z, n, args \
|
||||||
) \
|
) \
|
||||||
template< \
|
template< \
|
||||||
template< BOOST_PP_ENUM_PARAMS(BOOST_PP_INC(n), typename U) > class U \
|
template< BOOST_PP_ENUM_PARAMS_Z(z, BOOST_PP_INC(n), typename U) > class U \
|
||||||
> \
|
> \
|
||||||
struct BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \
|
struct BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \
|
||||||
args, n \
|
args, n \
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
|
|
||||||
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
|
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
|
||||||
&& !BOOST_WORKAROUND(__BORLANDC__, <= 0x551)
|
&& !BOOST_WORKAROUND(BOOST_BORLANDC, <= 0x551)
|
||||||
BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
|
BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
|
||||||
// 'bool' constant doesn't have 'next'/'prior' members
|
// 'bool' constant doesn't have 'next'/'prior' members
|
||||||
template< bool C >
|
template< bool C >
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
#include <boost/mpl/aux_/na_spec.hpp>
|
#include <boost/mpl/aux_/na_spec.hpp>
|
||||||
#include <boost/mpl/aux_/config/workaround.hpp>
|
#include <boost/mpl/aux_/config/workaround.hpp>
|
||||||
|
|
||||||
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
|
#if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x610))
|
||||||
# define BOOST_MPL_CFG_STRIPPED_DOWN_LOWER_BOUND_IMPL
|
# define BOOST_MPL_CFG_STRIPPED_DOWN_LOWER_BOUND_IMPL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
// resolves conflicts with 'boost::numeric_cast' function template.
|
// resolves conflicts with 'boost::numeric_cast' function template.
|
||||||
// use it in your own code _only_ if you care about compatibility with
|
// use it in your own code _only_ if you care about compatibility with
|
||||||
// these outdated compilers!
|
// these outdated compilers!
|
||||||
#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570) )
|
#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) || BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x570) )
|
||||||
# define BOOST_MPL_AUX_NUMERIC_CAST numeric_cast_
|
# define BOOST_MPL_AUX_NUMERIC_CAST numeric_cast_
|
||||||
#else
|
#else
|
||||||
# define BOOST_MPL_AUX_NUMERIC_CAST numeric_cast
|
# define BOOST_MPL_AUX_NUMERIC_CAST numeric_cast
|
||||||
|
|||||||
@@ -29,26 +29,22 @@
|
|||||||
// 'or' and 'and' macros, see http://tinyurl.com/3et69; 'defined(or)'
|
// 'or' and 'and' macros, see http://tinyurl.com/3et69; 'defined(or)'
|
||||||
// has to be checked in a separate condition, otherwise GCC complains
|
// has to be checked in a separate condition, otherwise GCC complains
|
||||||
// about 'or' being an alternative token
|
// about 'or' being an alternative token
|
||||||
#if defined(_MSC_VER) && !defined(__clang__)
|
#if defined(_MSC_EXTENSIONS)
|
||||||
#ifndef __GCCXML__
|
|
||||||
#if defined(or)
|
#if defined(or)
|
||||||
# pragma push_macro("or")
|
# pragma push_macro("or")
|
||||||
# undef or
|
# undef or
|
||||||
# define or(x)
|
# define or(x)
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
# define BOOST_MPL_PREPROCESSED_HEADER or.hpp
|
# define BOOST_MPL_PREPROCESSED_HEADER or.hpp
|
||||||
# include <boost/mpl/aux_/include_preprocessed.hpp>
|
# include <boost/mpl/aux_/include_preprocessed.hpp>
|
||||||
|
|
||||||
#if defined(_MSC_VER) && !defined(__clang__)
|
#if defined(_MSC_EXTENSIONS)
|
||||||
#ifndef __GCCXML__
|
|
||||||
#if defined(or)
|
#if defined(or)
|
||||||
# pragma pop_macro("or")
|
# pragma pop_macro("or")
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
|||||||
@@ -500,11 +500,11 @@ namespace boost { namespace mpl
|
|||||||
};
|
};
|
||||||
|
|
||||||
#define M0(z, n, data) \
|
#define M0(z, n, data) \
|
||||||
template<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, int C), int J> \
|
template<BOOST_PP_ENUM_PARAMS_Z(z, BOOST_MPL_STRING_MAX_PARAMS, int C), int J> \
|
||||||
struct string_iterator<mpl::string<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C)>, n, J> \
|
struct string_iterator<mpl::string<BOOST_PP_ENUM_PARAMS_Z(z, BOOST_MPL_STRING_MAX_PARAMS, C)>, n, J> \
|
||||||
{ \
|
{ \
|
||||||
enum { eomc_ = (BOOST_MPL_MULTICHAR_LENGTH(BOOST_PP_CAT(C, n)) == J + 1) }; \
|
enum { eomc_ = (BOOST_MPL_MULTICHAR_LENGTH(BOOST_PP_CAT(C, n)) == J + 1) }; \
|
||||||
typedef mpl::string<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C)> string; \
|
typedef mpl::string<BOOST_PP_ENUM_PARAMS_Z(z, BOOST_MPL_STRING_MAX_PARAMS, C)> string; \
|
||||||
typedef std::bidirectional_iterator_tag category; \
|
typedef std::bidirectional_iterator_tag category; \
|
||||||
typedef \
|
typedef \
|
||||||
mpl::string_iterator<string, n + eomc_, eomc_ ? 0 : J + 1> \
|
mpl::string_iterator<string, n + eomc_, eomc_ ? 0 : J + 1> \
|
||||||
@@ -514,11 +514,11 @@ namespace boost { namespace mpl
|
|||||||
prior; \
|
prior; \
|
||||||
typedef mpl::char_<BOOST_MPL_MULTICHAR_AT(BOOST_PP_CAT(C, n), J)> type; \
|
typedef mpl::char_<BOOST_MPL_MULTICHAR_AT(BOOST_PP_CAT(C, n), J)> type; \
|
||||||
}; \
|
}; \
|
||||||
template<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, int C)> \
|
template<BOOST_PP_ENUM_PARAMS_Z(z, BOOST_MPL_STRING_MAX_PARAMS, int C)> \
|
||||||
struct string_iterator<mpl::string<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C)>, n, 0> \
|
struct string_iterator<mpl::string<BOOST_PP_ENUM_PARAMS_Z(z, BOOST_MPL_STRING_MAX_PARAMS, C)>, n, 0> \
|
||||||
{ \
|
{ \
|
||||||
enum { eomc_ = (BOOST_MPL_MULTICHAR_LENGTH(BOOST_PP_CAT(C, n)) == 1) }; \
|
enum { eomc_ = (BOOST_MPL_MULTICHAR_LENGTH(BOOST_PP_CAT(C, n)) == 1) }; \
|
||||||
typedef mpl::string<BOOST_PP_ENUM_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C)> string; \
|
typedef mpl::string<BOOST_PP_ENUM_PARAMS_Z(z, BOOST_MPL_STRING_MAX_PARAMS, C)> string; \
|
||||||
typedef std::bidirectional_iterator_tag category; \
|
typedef std::bidirectional_iterator_tag category; \
|
||||||
typedef \
|
typedef \
|
||||||
mpl::string_iterator<string, n + eomc_, !eomc_> \
|
mpl::string_iterator<string, n + eomc_, !eomc_> \
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
#include <boost/mpl/aux_/na_spec.hpp>
|
#include <boost/mpl/aux_/na_spec.hpp>
|
||||||
#include <boost/mpl/aux_/config/workaround.hpp>
|
#include <boost/mpl/aux_/config/workaround.hpp>
|
||||||
|
|
||||||
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
|
#if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x610))
|
||||||
# define BOOST_MPL_CFG_STRIPPED_DOWN_UPPER_BOUND_IMPL
|
# define BOOST_MPL_CFG_STRIPPED_DOWN_UPPER_BOUND_IMPL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ template< BOOST_MPL_AUX_NTTP_DECL(long, n_) >
|
|||||||
struct at_impl< aux::vector_tag<n_> >
|
struct at_impl< aux::vector_tag<n_> >
|
||||||
{
|
{
|
||||||
template< typename Vector, typename N > struct apply
|
template< typename Vector, typename N > struct apply
|
||||||
#if !defined(__BORLANDC__)
|
#if !defined(BOOST_BORLANDC)
|
||||||
: v_at<
|
: v_at<
|
||||||
Vector
|
Vector
|
||||||
, BOOST_MPL_AUX_VALUE_WKND(N)::value
|
, BOOST_MPL_AUX_VALUE_WKND(N)::value
|
||||||
|
|||||||
+2
-1
@@ -10,5 +10,6 @@
|
|||||||
],
|
],
|
||||||
"maintainers": [
|
"maintainers": [
|
||||||
"Aleksey Gurtovoy <agurtovoy -at- meta-comm.com>"
|
"Aleksey Gurtovoy <agurtovoy -at- meta-comm.com>"
|
||||||
]
|
],
|
||||||
|
"cxxstd": "03"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,12 +5,12 @@ Pre-processing of MPL-containers can be accomplished using the script
|
|||||||
"boost_mpl_preprocess.py". In the simple case call it with a single
|
"boost_mpl_preprocess.py". In the simple case call it with a single
|
||||||
argument which is the path to the source-directory of Boost.
|
argument which is the path to the source-directory of Boost.
|
||||||
|
|
||||||
python boost_mpl_preprocess.py <path-to-boost-sourcedir>
|
python3 boost_mpl_preprocess.py <path-to-boost-sourcedir>
|
||||||
|
|
||||||
If the Boost source-directory is the one this script resides in, you
|
If the Boost source-directory is the one this script resides in, you
|
||||||
can just call it without any arguments.
|
can just call it without any arguments.
|
||||||
|
|
||||||
python boost_mpl_preprocess.py
|
python3 boost_mpl_preprocess.py
|
||||||
|
|
||||||
Either way, this will pre-process all four MPL-container types (vector,
|
Either way, this will pre-process all four MPL-container types (vector,
|
||||||
list, set, map) and makes them able to hold up to 100 elements. They can
|
list, set, map) and makes them able to hold up to 100 elements. They can
|
||||||
@@ -22,7 +22,7 @@ be different from the one of other MPL-container types and it can also
|
|||||||
differ between its 'numbered' and 'variadic' form.
|
differ between its 'numbered' and 'variadic' form.
|
||||||
To see all options, call the script like this:
|
To see all options, call the script like this:
|
||||||
|
|
||||||
python boost_mpl_preprocess.py --help
|
python3 boost_mpl_preprocess.py --help
|
||||||
|
|
||||||
|
|
||||||
Fixing pre-processing of MPL-containers
|
Fixing pre-processing of MPL-containers
|
||||||
@@ -44,12 +44,12 @@ can also fix them explicitly by calling "fix_boost_mpl_preprocess.py"
|
|||||||
directly.
|
directly.
|
||||||
If you just want to test if any fixing is needed call it like this:
|
If you just want to test if any fixing is needed call it like this:
|
||||||
|
|
||||||
python fix_boost_mpl_preprocess.py --check-only <path-to-boost-sourcedir>
|
python3 fix_boost_mpl_preprocess.py --check-only <path-to-boost-sourcedir>
|
||||||
|
|
||||||
This will tell you if any fixing is needed. In such a case call the script
|
This will tell you if any fixing is needed. In such a case call the script
|
||||||
"fix_boost_mpl_preprocess.py" like this:
|
"fix_boost_mpl_preprocess.py" like this:
|
||||||
|
|
||||||
python fix_boost_mpl_preprocess.py <path-to-boost-sourcedir>
|
python3 fix_boost_mpl_preprocess.py <path-to-boost-sourcedir>
|
||||||
|
|
||||||
This will fix the header-comments of all the source-files needed during
|
This will fix the header-comments of all the source-files needed during
|
||||||
pre-processing. Calling "boost_mpl_preprocess.py" afterwards should then
|
pre-processing. Calling "boost_mpl_preprocess.py" afterwards should then
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ def create_more_container_files(sourceDir, suffix, maxElements, containers, cont
|
|||||||
newFile = os.path.join( sourceDir, container, container + str(i+10) + suffix )
|
newFile = os.path.join( sourceDir, container, container + str(i+10) + suffix )
|
||||||
shutil.copyfile( os.path.join( sourceDir, container, container + "20" + suffix ), newFile )
|
shutil.copyfile( os.path.join( sourceDir, container, container + "20" + suffix ), newFile )
|
||||||
# Adjust copy of "template"-file accordingly.
|
# Adjust copy of "template"-file accordingly.
|
||||||
for line in fileinput.input( newFile, inplace=1, mode="rU" ):
|
for line in fileinput.input( newFile, inplace=1, mode="r" ):
|
||||||
line = re.sub(r'20', '%TWENTY%', line.rstrip())
|
line = re.sub(r'20', '%TWENTY%', line.rstrip())
|
||||||
line = re.sub(r'11', '%ELEVEN%', line.rstrip())
|
line = re.sub(r'11', '%ELEVEN%', line.rstrip())
|
||||||
line = re.sub(r'10(?![0-9])', '%TEN%', line.rstrip())
|
line = re.sub(r'10(?![0-9])', '%TEN%', line.rstrip())
|
||||||
@@ -43,7 +43,7 @@ def create_more_container_files(sourceDir, suffix, maxElements, containers, cont
|
|||||||
newFile = os.path.join( sourceDir, container, container + str(i+10) + "_c" + suffix )
|
newFile = os.path.join( sourceDir, container, container + str(i+10) + "_c" + suffix )
|
||||||
shutil.copyfile( os.path.join( sourceDir, container, container + "20_c" + suffix ), newFile )
|
shutil.copyfile( os.path.join( sourceDir, container, container + "20_c" + suffix ), newFile )
|
||||||
# Adjust copy of "template"-file accordingly.
|
# Adjust copy of "template"-file accordingly.
|
||||||
for line in fileinput.input( newFile, inplace=1, mode="rU" ):
|
for line in fileinput.input( newFile, inplace=1, mode="r" ):
|
||||||
line = re.sub(r'20', '%TWENTY%', line.rstrip())
|
line = re.sub(r'20', '%TWENTY%', line.rstrip())
|
||||||
line = re.sub(r'11', '%ELEVEN%', line.rstrip())
|
line = re.sub(r'11', '%ELEVEN%', line.rstrip())
|
||||||
line = re.sub(r'10(?![0-9])', '%TEN%', line.rstrip())
|
line = re.sub(r'10(?![0-9])', '%TEN%', line.rstrip())
|
||||||
@@ -73,7 +73,7 @@ def adjust_container_limits_for_variadic_sequences(headerDir, containers, maxEle
|
|||||||
headerFile = os.path.join( headerDir, "limits", container + ".hpp" )
|
headerFile = os.path.join( headerDir, "limits", container + ".hpp" )
|
||||||
regexMatch = r'(define\s+BOOST_MPL_LIMIT_' + container.upper() + r'_SIZE\s+)[0-9]+'
|
regexMatch = r'(define\s+BOOST_MPL_LIMIT_' + container.upper() + r'_SIZE\s+)[0-9]+'
|
||||||
regexReplace = r'\g<1>' + re.escape( str(maxElements) )
|
regexReplace = r'\g<1>' + re.escape( str(maxElements) )
|
||||||
for line in fileinput.input( headerFile, inplace=1, mode="rU" ):
|
for line in fileinput.input( headerFile, inplace=1, mode="r" ):
|
||||||
line = re.sub(regexMatch, regexReplace, line.rstrip())
|
line = re.sub(regexMatch, regexReplace, line.rstrip())
|
||||||
print(line)
|
print(line)
|
||||||
|
|
||||||
@@ -118,6 +118,11 @@ def to_existing_absolute_path(string):
|
|||||||
def main():
|
def main():
|
||||||
"""The main function."""
|
"""The main function."""
|
||||||
|
|
||||||
|
# Determine the currently running python executable.
|
||||||
|
python_executable = sys.executable
|
||||||
|
if python_executable == None or python_executable == "":
|
||||||
|
python_executable = python
|
||||||
|
|
||||||
# Find the current Boost source-directory in which this script is located.
|
# Find the current Boost source-directory in which this script is located.
|
||||||
sourceDir = current_boost_dir()
|
sourceDir = current_boost_dir()
|
||||||
if sourceDir == None:
|
if sourceDir == None:
|
||||||
@@ -150,19 +155,19 @@ def main():
|
|||||||
|
|
||||||
# Some verbose debug output.
|
# Some verbose debug output.
|
||||||
if args.verbose:
|
if args.verbose:
|
||||||
print "Arguments extracted from command-line:"
|
print("Arguments extracted from command-line:")
|
||||||
print " verbose = ", args.verbose
|
print(" verbose = ", args.verbose)
|
||||||
print " source directory = ", args.sourceDir
|
print(" source directory = ", args.sourceDir)
|
||||||
print " num elements = ", args.numElements
|
print(" num elements = ", args.numElements)
|
||||||
print " sequence type = ", args.seqType
|
print(" sequence type = ", args.seqType)
|
||||||
print " want: vector = ", args.want_vector
|
print(" want: vector = ", args.want_vector)
|
||||||
print " want: list = ", args.want_list
|
print(" want: list = ", args.want_list)
|
||||||
print " want: set = ", args.want_set
|
print(" want: set = ", args.want_set)
|
||||||
print " want: map = ", args.want_map
|
print(" want: map = ", args.want_map)
|
||||||
|
|
||||||
# Verify that we received any source-directory.
|
# Verify that we received any source-directory.
|
||||||
if args.sourceDir == None:
|
if args.sourceDir == None:
|
||||||
print "You should specify a valid path to the Boost source-directory."
|
print("You should specify a valid path to the Boost source-directory.")
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
# The directories for header- and source files of Boost.MPL.
|
# The directories for header- and source files of Boost.MPL.
|
||||||
@@ -177,13 +182,13 @@ def main():
|
|||||||
sourceDir = os.path.join( args.sourceDir, "preprocessed" )
|
sourceDir = os.path.join( args.sourceDir, "preprocessed" )
|
||||||
if not os.path.exists( headerDir ) or not os.path.exists( sourceDir ):
|
if not os.path.exists( headerDir ) or not os.path.exists( sourceDir ):
|
||||||
cmdlineParser.print_usage()
|
cmdlineParser.print_usage()
|
||||||
print "error: Cannot find Boost.MPL header/source files in given Boost source-directory!"
|
print("error: Cannot find Boost.MPL header/source files in given Boost source-directory!")
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
# Some verbose debug output.
|
# Some verbose debug output.
|
||||||
if args.verbose:
|
if args.verbose:
|
||||||
print "Chosen header-directory: ", headerDir
|
print("Chosen header-directory: ", headerDir)
|
||||||
print "Chosen source-directory: ", sourceDir
|
print("Chosen source-directory: ", sourceDir)
|
||||||
|
|
||||||
# Create list of containers for which files shall be pre-processed.
|
# Create list of containers for which files shall be pre-processed.
|
||||||
containers = []
|
containers = []
|
||||||
@@ -196,23 +201,23 @@ def main():
|
|||||||
if args.want_map:
|
if args.want_map:
|
||||||
containers.append('map')
|
containers.append('map')
|
||||||
if containers == []:
|
if containers == []:
|
||||||
print "Nothing to do."
|
print("Nothing to do.")
|
||||||
print "(Why did you prevent generating pre-processed headers for all Boost.MPL container types?)"
|
print("(Why did you prevent generating pre-processed headers for all Boost.MPL container types?)")
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
# Possibly fix the header-comments of input-files needed for pre-processing.
|
# Possibly fix the header-comments of input-files needed for pre-processing.
|
||||||
if args.verbose:
|
if args.verbose:
|
||||||
print "Checking if prior to pre-processing some input-files need fixing."
|
print("Checking if prior to pre-processing some input-files need fixing.")
|
||||||
needFixing = fixmpl.check_input_files(headerDir, sourceDir, containers, args.seqType, args.verbose)
|
needFixing = fixmpl.check_input_files(headerDir, sourceDir, containers, args.seqType, args.verbose)
|
||||||
if needFixing:
|
if needFixing:
|
||||||
if args.verbose:
|
if args.verbose:
|
||||||
print "Fixing of some input-files prior to pre-processing is needed."
|
print("Fixing of some input-files prior to pre-processing is needed.")
|
||||||
print "Will fix them now!"
|
print("Will fix them now!")
|
||||||
fixmpl.fix_input_files(headerDir, sourceDir, containers, args.seqType, args.verbose)
|
fixmpl.fix_input_files(headerDir, sourceDir, containers, args.seqType, args.verbose)
|
||||||
|
|
||||||
# Some verbose debug output.
|
# Some verbose debug output.
|
||||||
if args.verbose:
|
if args.verbose:
|
||||||
print "Containers for which to pre-process headers: ", containers
|
print("Containers for which to pre-process headers: ", containers)
|
||||||
|
|
||||||
# Create (additional) input files for generating pre-processed headers of numbered sequence MPL containers.
|
# Create (additional) input files for generating pre-processed headers of numbered sequence MPL containers.
|
||||||
if args.seqType == "both" or args.seqType == "numbered":
|
if args.seqType == "both" or args.seqType == "numbered":
|
||||||
@@ -226,24 +231,24 @@ def main():
|
|||||||
if args.seqType == "both" or args.seqType == "numbered":
|
if args.seqType == "both" or args.seqType == "numbered":
|
||||||
if args.want_vector:
|
if args.want_vector:
|
||||||
if args.verbose:
|
if args.verbose:
|
||||||
print "Pre-process headers for Boost.MPL numbered vectors."
|
print("Pre-process headers for Boost.MPL numbered vectors.")
|
||||||
os.system( "python " + os.path.join( sourceDir, "preprocess_vector.py" ) + " all " + args.sourceDir )
|
os.system( python_executable + " " + os.path.join( sourceDir, "preprocess_vector.py" ) + " all " + args.sourceDir )
|
||||||
if args.want_list:
|
if args.want_list:
|
||||||
if args.verbose:
|
if args.verbose:
|
||||||
print "Pre-process headers for Boost.MPL numbered lists."
|
print("Pre-process headers for Boost.MPL numbered lists.")
|
||||||
os.system( "python " + os.path.join( sourceDir, "preprocess_list.py" ) + " all " + args.sourceDir )
|
os.system( python_executable + " " + os.path.join( sourceDir, "preprocess_list.py" ) + " all " + args.sourceDir )
|
||||||
if args.want_set:
|
if args.want_set:
|
||||||
if args.verbose:
|
if args.verbose:
|
||||||
print "Pre-process headers for Boost.MPL numbered sets."
|
print("Pre-process headers for Boost.MPL numbered sets.")
|
||||||
os.system( "python " + os.path.join( sourceDir, "preprocess_set.py" ) + " all " + args.sourceDir )
|
os.system( python_executable + " " + os.path.join( sourceDir, "preprocess_set.py" ) + " all " + args.sourceDir )
|
||||||
if args.want_map:
|
if args.want_map:
|
||||||
if args.verbose:
|
if args.verbose:
|
||||||
print "Pre-process headers for Boost.MPL numbered maps."
|
print("Pre-process headers for Boost.MPL numbered maps.")
|
||||||
os.system( "python " + os.path.join( sourceDir, "preprocess_map.py" ) + " all " + args.sourceDir )
|
os.system( python_executable + " " + os.path.join( sourceDir, "preprocess_map.py" ) + " all " + args.sourceDir )
|
||||||
if args.seqType == "both" or args.seqType == "variadic":
|
if args.seqType == "both" or args.seqType == "variadic":
|
||||||
if args.verbose:
|
if args.verbose:
|
||||||
print "Pre-process headers for Boost.MPL variadic containers."
|
print("Pre-process headers for Boost.MPL variadic containers.")
|
||||||
os.system( "python " + os.path.join( sourceDir, "preprocess.py" ) + " all " + args.sourceDir )
|
os.system( python_executable + " " + os.path.join( sourceDir, "preprocess.py" ) + " all " + args.sourceDir )
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ def check_header_comment(filename):
|
|||||||
# Check input file.
|
# Check input file.
|
||||||
name = os.path.basename( filename )
|
name = os.path.basename( filename )
|
||||||
# Read content of input file.
|
# Read content of input file.
|
||||||
sourcefile = open( filename, "rU" )
|
sourcefile = open( filename, "r" )
|
||||||
content = sourcefile.read()
|
content = sourcefile.read()
|
||||||
sourcefile.close()
|
sourcefile.close()
|
||||||
# Search content for '$Id$'.
|
# Search content for '$Id$'.
|
||||||
@@ -66,26 +66,26 @@ def check_input_files(headerDir, sourceDir, containers=['vector', 'list', 'set',
|
|||||||
result1 = False
|
result1 = False
|
||||||
if seqType == "both" or seqType == "variadic":
|
if seqType == "both" or seqType == "variadic":
|
||||||
if verbose:
|
if verbose:
|
||||||
print "Check if input files for pre-processing Boost.MPL variadic containers need fixing."
|
print("Check if input files for pre-processing Boost.MPL variadic containers need fixing.")
|
||||||
result1 = check_input_files_for_variadic_seq(headerDir, sourceDir)
|
result1 = check_input_files_for_variadic_seq(headerDir, sourceDir)
|
||||||
if verbose:
|
if verbose:
|
||||||
if result1:
|
if result1:
|
||||||
print " At least one input file needs fixing!"
|
print(" At least one input file needs fixing!")
|
||||||
else:
|
else:
|
||||||
print " No input file needs fixing!"
|
print(" No input file needs fixing!")
|
||||||
# Check the input files for containers in their numbered form.
|
# Check the input files for containers in their numbered form.
|
||||||
result2 = False
|
result2 = False
|
||||||
result3 = False
|
result3 = False
|
||||||
if seqType == "both" or seqType == "numbered":
|
if seqType == "both" or seqType == "numbered":
|
||||||
if verbose:
|
if verbose:
|
||||||
print "Check input files for pre-processing Boost.MPL numbered containers."
|
print("Check input files for pre-processing Boost.MPL numbered containers.")
|
||||||
result2 = check_input_files_for_numbered_seq(headerDir, ".hpp", containers)
|
result2 = check_input_files_for_numbered_seq(headerDir, ".hpp", containers)
|
||||||
result3 = check_input_files_for_numbered_seq(sourceDir, ".cpp", containers)
|
result3 = check_input_files_for_numbered_seq(sourceDir, ".cpp", containers)
|
||||||
if verbose:
|
if verbose:
|
||||||
if result2 or result3:
|
if result2 or result3:
|
||||||
print " At least one input file needs fixing!"
|
print(" At least one input file needs fixing!")
|
||||||
else:
|
else:
|
||||||
print " No input file needs fixing!"
|
print(" No input file needs fixing!")
|
||||||
# Return result.
|
# Return result.
|
||||||
return result1 or result2 or result3
|
return result1 or result2 or result3
|
||||||
|
|
||||||
@@ -93,7 +93,7 @@ def fix_header_comment(filename, timestamp):
|
|||||||
"""Fixes the header-comment of the given file."""
|
"""Fixes the header-comment of the given file."""
|
||||||
# Fix input file.
|
# Fix input file.
|
||||||
name = os.path.basename( filename )
|
name = os.path.basename( filename )
|
||||||
for line in fileinput.input( filename, inplace=1, mode="rU" ):
|
for line in fileinput.input( filename, inplace=1, mode="r" ):
|
||||||
# If header-comment already contains anything for '$Id$', remove it.
|
# If header-comment already contains anything for '$Id$', remove it.
|
||||||
line = re.sub(r'\$Id:[^$]+\$', r'$Id$', line.rstrip())
|
line = re.sub(r'\$Id:[^$]+\$', r'$Id$', line.rstrip())
|
||||||
# Replace '$Id$' by a string containing the file's name (and a timestamp)!
|
# Replace '$Id$' by a string containing the file's name (and a timestamp)!
|
||||||
@@ -128,12 +128,12 @@ def fix_input_files(headerDir, sourceDir, containers=['vector', 'list', 'set', '
|
|||||||
# Fix the input files for containers in their variadic form.
|
# Fix the input files for containers in their variadic form.
|
||||||
if seqType == "both" or seqType == "variadic":
|
if seqType == "both" or seqType == "variadic":
|
||||||
if verbose:
|
if verbose:
|
||||||
print "Fix input files for pre-processing Boost.MPL variadic containers."
|
print("Fix input files for pre-processing Boost.MPL variadic containers.")
|
||||||
fix_input_files_for_variadic_seq(headerDir, sourceDir, timestamp)
|
fix_input_files_for_variadic_seq(headerDir, sourceDir, timestamp)
|
||||||
# Fix the input files for containers in their numbered form.
|
# Fix the input files for containers in their numbered form.
|
||||||
if seqType == "both" or seqType == "numbered":
|
if seqType == "both" or seqType == "numbered":
|
||||||
if verbose:
|
if verbose:
|
||||||
print "Fix input files for pre-processing Boost.MPL numbered containers."
|
print("Fix input files for pre-processing Boost.MPL numbered containers.")
|
||||||
fix_input_files_for_numbered_seq(headerDir, ".hpp", timestamp, containers)
|
fix_input_files_for_numbered_seq(headerDir, ".hpp", timestamp, containers)
|
||||||
fix_input_files_for_numbered_seq(sourceDir, ".cpp", timestamp, containers)
|
fix_input_files_for_numbered_seq(sourceDir, ".cpp", timestamp, containers)
|
||||||
|
|
||||||
@@ -164,10 +164,10 @@ def main():
|
|||||||
|
|
||||||
# Some verbose debug output.
|
# Some verbose debug output.
|
||||||
if args.verbose:
|
if args.verbose:
|
||||||
print "Arguments extracted from command-line:"
|
print("Arguments extracted from command-line:")
|
||||||
print " verbose = ", args.verbose
|
print(" verbose = ", args.verbose)
|
||||||
print " check-only = ", args.checkonly
|
print(" check-only = ", args.checkonly)
|
||||||
print " source directory = ", args.sourceDir
|
print(" source directory = ", args.sourceDir)
|
||||||
|
|
||||||
# The directories for header- and source files of Boost.MPL.
|
# The directories for header- and source files of Boost.MPL.
|
||||||
# NOTE: Assuming 'args.sourceDir' is the source-directory of the entire boost project.
|
# NOTE: Assuming 'args.sourceDir' is the source-directory of the entire boost project.
|
||||||
@@ -181,21 +181,21 @@ def main():
|
|||||||
sourceDir = os.path.join( args.sourceDir, "preprocessed" )
|
sourceDir = os.path.join( args.sourceDir, "preprocessed" )
|
||||||
if not os.path.exists( headerDir ) or not os.path.exists( sourceDir ):
|
if not os.path.exists( headerDir ) or not os.path.exists( sourceDir ):
|
||||||
cmdlineParser.print_usage()
|
cmdlineParser.print_usage()
|
||||||
print "error: Cannot find Boost.MPL header/source files in given Boost source-directory!"
|
print("error: Cannot find Boost.MPL header/source files in given Boost source-directory!")
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
# Some verbose debug output.
|
# Some verbose debug output.
|
||||||
if args.verbose:
|
if args.verbose:
|
||||||
print "Chosen header-directory: ", headerDir
|
print("Chosen header-directory: ", headerDir)
|
||||||
print "Chosen source-directory: ", sourceDir
|
print("Chosen source-directory: ", sourceDir)
|
||||||
|
|
||||||
if args.checkonly:
|
if args.checkonly:
|
||||||
# Check input files for generating pre-processed headers.
|
# Check input files for generating pre-processed headers.
|
||||||
result = check_input_files(headerDir, sourceDir, verbose = args.verbose)
|
result = check_input_files(headerDir, sourceDir, verbose = args.verbose)
|
||||||
if result:
|
if result:
|
||||||
print "Fixing the input-files used for pre-processing of Boost.MPL headers IS required."
|
print("Fixing the input-files used for pre-processing of Boost.MPL headers IS required.")
|
||||||
else:
|
else:
|
||||||
print "Fixing the input-files used for pre-processing of Boost.MPL headers is NOT required."
|
print("Fixing the input-files used for pre-processing of Boost.MPL headers is NOT required.")
|
||||||
else:
|
else:
|
||||||
# Fix input files for generating pre-processed headers.
|
# Fix input files for generating pre-processed headers.
|
||||||
fix_input_files(headerDir, sourceDir, verbose = args.verbose)
|
fix_input_files(headerDir, sourceDir, verbose = args.verbose)
|
||||||
|
|||||||
+12
-13
@@ -12,6 +12,7 @@
|
|||||||
# $Revision$
|
# $Revision$
|
||||||
|
|
||||||
import fileinput
|
import fileinput
|
||||||
|
import functools
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import string
|
import string
|
||||||
@@ -22,22 +23,21 @@ max_len = 79
|
|||||||
ident = 4
|
ident = 4
|
||||||
|
|
||||||
def nearest_ident_pos(text):
|
def nearest_ident_pos(text):
|
||||||
return (len(text)/ident) * ident
|
return int((len(text)/ident) * ident)
|
||||||
|
|
||||||
def block_format(limits, text, first_sep=' ', sep=',', need_last_ident=1 ):
|
def block_format(limits, text, first_sep=' ', sep=',', need_last_ident=1 ):
|
||||||
if sep == ',' and string.find( text, '<' ) != -1:
|
if sep == ',' and str.find( text, '<' ) != -1:
|
||||||
sep = '%s ' % sep
|
sep = '%s ' % sep
|
||||||
|
|
||||||
words = string.split(
|
words = str.split(
|
||||||
string.join( string.split( text ), ' ' )
|
' '.join( str.split( text ) )
|
||||||
, sep
|
, sep
|
||||||
)
|
)
|
||||||
|
|
||||||
s = ' ' * limits[0]
|
s = ' ' * limits[0]
|
||||||
max_len = limits[1]
|
max_len = limits[1]
|
||||||
return '%s\n%s' \
|
return '%s\n%s' \
|
||||||
% (
|
% (
|
||||||
reduce(
|
functools.reduce(
|
||||||
lambda t,w,max_len=max_len,s=s,sep=sep:
|
lambda t,w,max_len=max_len,s=s,sep=sep:
|
||||||
if_else(t[1] + len(w) < max_len
|
if_else(t[1] + len(w) < max_len
|
||||||
, ('%s%s%s'% (t[0],t[2],w), t[1]+len(w)+len(t[2]), sep)
|
, ('%s%s%s'% (t[0],t[2],w), t[1]+len(w)+len(t[2]), sep)
|
||||||
@@ -52,7 +52,6 @@ def block_format(limits, text, first_sep=' ', sep=',', need_last_ident=1 ):
|
|||||||
def handle_args( match ):
|
def handle_args( match ):
|
||||||
if re.compile('^\s*(typedef|struct|static)\s+.*?$').match(match.group(0)):
|
if re.compile('^\s*(typedef|struct|static)\s+.*?$').match(match.group(0)):
|
||||||
return match.group(0)
|
return match.group(0)
|
||||||
|
|
||||||
return '%s'\
|
return '%s'\
|
||||||
% block_format(
|
% block_format(
|
||||||
(nearest_ident_pos(match.group(1)),max_len)
|
(nearest_ident_pos(match.group(1)),max_len)
|
||||||
@@ -86,7 +85,7 @@ def handle_inline_args(match):
|
|||||||
(nearest_ident_pos(match.group(1))+ident,max_len-len(match.group(9)))
|
(nearest_ident_pos(match.group(1))+ident,max_len-len(match.group(9)))
|
||||||
, match.group(4)
|
, match.group(4)
|
||||||
)
|
)
|
||||||
, string.replace(match.group(1),',',' ')
|
, str.replace(match.group(1),',',' ')
|
||||||
, match.group(9)
|
, match.group(9)
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -98,18 +97,18 @@ def handle_simple_list(match):
|
|||||||
return if_else(single_arg,'%s<%s>','%s< %s >') %\
|
return if_else(single_arg,'%s<%s>','%s< %s >') %\
|
||||||
(
|
(
|
||||||
match.group(1)
|
match.group(1)
|
||||||
, string.join(string.split(match.group(2)), '')
|
, ''.join(str.split(match.group(2)))
|
||||||
)
|
)
|
||||||
|
|
||||||
def handle_static(match):
|
def handle_static(match):
|
||||||
if len(match.group(0)) < max_len:
|
if len(match.group(0)) < max_len:
|
||||||
return match.group(0)
|
return match.group(0)
|
||||||
|
|
||||||
(first_sep,sep) = if_else(string.find(match.group(0),'+') == -1, (' ',' '),(' ','+'))
|
(first_sep,sep) = if_else(str.find(match.group(0),'+') == -1, (' ',' '),(' ','+'))
|
||||||
return '%s%s\n%s%s' %\
|
return '%s%s\n%s%s' %\
|
||||||
(
|
(
|
||||||
match.group(1)
|
match.group(1)
|
||||||
, string.join(string.split(match.group(2)), ' ')
|
, ' '.join(str.split(match.group(2)))
|
||||||
, block_format(
|
, block_format(
|
||||||
(nearest_ident_pos(match.group(1))+ident,max_len)
|
(nearest_ident_pos(match.group(1))+ident,max_len)
|
||||||
, match.group(4)
|
, match.group(4)
|
||||||
@@ -120,7 +119,7 @@ def handle_static(match):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def handle_typedefs(match):
|
def handle_typedefs(match):
|
||||||
if string.count(match.group(2), ';') == 1:
|
if str.count(match.group(2), ';') == 1:
|
||||||
return match.group(0)
|
return match.group(0)
|
||||||
|
|
||||||
join_sep = ';\n%s' % match.group(1)
|
join_sep = ';\n%s' % match.group(1)
|
||||||
@@ -128,7 +127,7 @@ def handle_typedefs(match):
|
|||||||
return '%s%s\n' \
|
return '%s%s\n' \
|
||||||
% (
|
% (
|
||||||
match.group(1)
|
match.group(1)
|
||||||
, string.join(map(string.strip, string.split(match.group(2), ';')), join_sep)
|
, join_sep.join(list(map(str.strip, str.split(match.group(2), ';'))))
|
||||||
)
|
)
|
||||||
|
|
||||||
def fix_angle_brackets( match ):
|
def fix_angle_brackets( match ):
|
||||||
|
|||||||
@@ -57,10 +57,10 @@ def process_all( root, boost_root, dst_dir, mode ):
|
|||||||
|
|
||||||
def main( all_modes, src_dir, dst_dir ):
|
def main( all_modes, src_dir, dst_dir ):
|
||||||
if len( sys.argv ) < 2:
|
if len( sys.argv ) < 2:
|
||||||
print "\nUsage:\n\t %s <mode> <boost_root> [<source_file>]" % os.path.basename( sys.argv[0] )
|
print("\nUsage:\n\t %s <mode> <boost_root> [<source_file>]" % os.path.basename( sys.argv[0] ))
|
||||||
print "\nPurpose:\n\t updates preprocessed version(s) of the header(s) in \"%s\" directory" % dst_dir
|
print("\nPurpose:\n\t updates preprocessed version(s) of the header(s) in \"%s\" directory" % dst_dir)
|
||||||
print "\nExample:\n\t the following command will re-generate and update all 'apply.hpp' headers:"
|
print("\nExample:\n\t the following command will re-generate and update all 'apply.hpp' headers:")
|
||||||
print "\n\t\t %s all f:\\cvs\\boost apply.cpp" % os.path.basename( sys.argv[0] )
|
print("\n\t\t %s all f:\\cvs\\boost apply.cpp" % os.path.basename( sys.argv[0] ))
|
||||||
sys.exit( -1 )
|
sys.exit( -1 )
|
||||||
|
|
||||||
if sys.argv[1] == "all":
|
if sys.argv[1] == "all":
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
# Copyright 2018, 2019 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(BoostTestJamfile OPTIONAL RESULT_VARIABLE HAVE_BOOST_TEST)
|
||||||
|
|
||||||
|
if(HAVE_BOOST_TEST)
|
||||||
|
|
||||||
|
boost_test_jamfile(FILE Jamfile.v2 LINK_LIBRARIES Boost::mpl Boost::bind)
|
||||||
|
|
||||||
|
endif()
|
||||||
+24
-4
@@ -1,3 +1,16 @@
|
|||||||
|
project
|
||||||
|
: requirements
|
||||||
|
<library>/boost/mpl//boost_mpl
|
||||||
|
<warnings>extra
|
||||||
|
<toolset>clang:<cxxflags>-Wno-variadic-macros
|
||||||
|
<toolset>gcc:<cxxflags>-Wshadow
|
||||||
|
<toolset>gcc:<cxxflags>-Wno-variadic-macros
|
||||||
|
<toolset>msvc:<define>_SCL_SECURE_NO_WARNINGS
|
||||||
|
;
|
||||||
|
|
||||||
|
import common ;
|
||||||
|
import os ;
|
||||||
|
import testing ;
|
||||||
|
|
||||||
compile aux_/increased_arity.cpp ;
|
compile aux_/increased_arity.cpp ;
|
||||||
compile aux_/largest_int.cpp ;
|
compile aux_/largest_int.cpp ;
|
||||||
@@ -13,7 +26,7 @@ compile apply_wrap.cpp ;
|
|||||||
compile arithmetic.cpp ;
|
compile arithmetic.cpp ;
|
||||||
compile as_sequence.cpp ;
|
compile as_sequence.cpp ;
|
||||||
compile assert.cpp ;
|
compile assert.cpp ;
|
||||||
# link assert_vc8_p1.cpp assert_vc8_p2.cpp ;
|
# link assert_vc8_p1.cpp assert_vc8_p2.cpp
|
||||||
compile at.cpp ;
|
compile at.cpp ;
|
||||||
compile back.cpp ;
|
compile back.cpp ;
|
||||||
compile bind.cpp ;
|
compile bind.cpp ;
|
||||||
@@ -36,7 +49,9 @@ compile filter_view.cpp ;
|
|||||||
compile find.cpp ;
|
compile find.cpp ;
|
||||||
compile find_if.cpp ;
|
compile find_if.cpp ;
|
||||||
compile fold.cpp ;
|
compile fold.cpp ;
|
||||||
run for_each.cpp ;
|
run for_each.cpp
|
||||||
|
: : : <cxxstd>98:<build>no <cxxstd>03:<build>no
|
||||||
|
<library>/boost/bind//boost_bind ;
|
||||||
compile front.cpp ;
|
compile front.cpp ;
|
||||||
compile get_tag_def.cpp ;
|
compile get_tag_def.cpp ;
|
||||||
compile has_xxx.cpp ;
|
compile has_xxx.cpp ;
|
||||||
@@ -47,8 +62,10 @@ compile inherit.cpp ;
|
|||||||
compile insert.cpp ;
|
compile insert.cpp ;
|
||||||
compile insert_range.cpp ;
|
compile insert_range.cpp ;
|
||||||
run int.cpp ;
|
run int.cpp ;
|
||||||
run char.cpp ;
|
run char.cpp : : : : char ;
|
||||||
run integral_c.cpp : : : <toolset>vacpp:<cxxflags>-qchars=signed ;
|
run char.cpp : : : <toolset>gcc:<cxxflags>"-funsigned-char -Wnarrowing -Werror" : char_unsigned ;
|
||||||
|
run integral_c.cpp : : : <toolset>vacpp:<cxxflags>-qchars=signed : integral_c ;
|
||||||
|
run integral_c.cpp : : : <toolset>gcc:<cxxflags>"-funsigned-char -Wnarrowing -Werror" : integral_c_unsigned ;
|
||||||
compile is_placeholder.cpp ;
|
compile is_placeholder.cpp ;
|
||||||
compile is_sequence.cpp ;
|
compile is_sequence.cpp ;
|
||||||
compile iterator_tags.cpp ;
|
compile iterator_tags.cpp ;
|
||||||
@@ -96,3 +113,6 @@ compile vector.cpp ;
|
|||||||
compile vector_c.cpp ;
|
compile vector_c.cpp ;
|
||||||
compile zip_view.cpp ;
|
compile zip_view.cpp ;
|
||||||
run string.cpp ;
|
run string.cpp ;
|
||||||
|
|
||||||
|
run issue_69.cpp ;
|
||||||
|
run issue_84.cpp ;
|
||||||
|
|||||||
+11
-11
@@ -24,14 +24,14 @@
|
|||||||
#include <boost/preprocessor/cat.hpp>
|
#include <boost/preprocessor/cat.hpp>
|
||||||
|
|
||||||
#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
|
#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
|
||||||
# define APPLY_0_FUNC_DEF(i) \
|
# define APPLY_0_FUNC_DEF(z_ignored,i) \
|
||||||
struct f0 \
|
struct f0 \
|
||||||
{ \
|
{ \
|
||||||
template< typename T = int > struct apply { typedef char type; }; \
|
template< typename T = int > struct apply { typedef char type; }; \
|
||||||
}; \
|
}; \
|
||||||
/**/
|
/**/
|
||||||
#else
|
#else
|
||||||
# define APPLY_0_FUNC_DEF(i) \
|
# define APPLY_0_FUNC_DEF(z_ignored,i) \
|
||||||
struct f0 \
|
struct f0 \
|
||||||
{ \
|
{ \
|
||||||
template< typename T > struct apply { typedef char type; }; \
|
template< typename T > struct apply { typedef char type; }; \
|
||||||
@@ -39,16 +39,16 @@
|
|||||||
/**/
|
/**/
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define APPLY_N_FUNC_DEF(i) \
|
#define APPLY_N_FUNC_DEF(z,i) \
|
||||||
struct first##i \
|
struct first##i \
|
||||||
{ \
|
{ \
|
||||||
template< BOOST_MPL_PP_PARAMS(i, typename U) > \
|
template< BOOST_MPL_PP_PARAMS_Z(z, i, typename U) > \
|
||||||
struct apply { typedef U1 type; }; \
|
struct apply { typedef U1 type; }; \
|
||||||
}; \
|
}; \
|
||||||
\
|
\
|
||||||
struct last##i \
|
struct last##i \
|
||||||
{ \
|
{ \
|
||||||
template< BOOST_MPL_PP_PARAMS(i, typename U) > \
|
template< BOOST_MPL_PP_PARAMS_Z(z, i, typename U) > \
|
||||||
struct apply { typedef BOOST_PP_CAT(U,i) type; }; \
|
struct apply { typedef BOOST_PP_CAT(U,i) type; }; \
|
||||||
}; \
|
}; \
|
||||||
/**/
|
/**/
|
||||||
@@ -58,7 +58,7 @@
|
|||||||
i \
|
i \
|
||||||
, APPLY_N_FUNC_DEF \
|
, APPLY_N_FUNC_DEF \
|
||||||
, APPLY_0_FUNC_DEF \
|
, APPLY_0_FUNC_DEF \
|
||||||
)(i) \
|
)(z,i) \
|
||||||
/**/
|
/**/
|
||||||
|
|
||||||
namespace { namespace test {
|
namespace { namespace test {
|
||||||
@@ -73,22 +73,22 @@ struct g0 { struct apply { typedef char type; }; };
|
|||||||
|
|
||||||
}}
|
}}
|
||||||
|
|
||||||
#define APPLY_0_TEST(i, apply_) \
|
#define APPLY_0_TEST(z_ignored, i, apply_) \
|
||||||
typedef apply_<test::f##i>::type t; \
|
typedef apply_<test::f##i>::type t; \
|
||||||
{ MPL_ASSERT(( boost::is_same<t, char> )); } \
|
{ MPL_ASSERT(( boost::is_same<t, char> )); } \
|
||||||
/**/
|
/**/
|
||||||
|
|
||||||
#define APPLY_N_TEST(i, apply_) \
|
#define APPLY_N_TEST(z, i, apply_) \
|
||||||
typedef apply_< \
|
typedef apply_< \
|
||||||
test::first##i \
|
test::first##i \
|
||||||
, char \
|
, char \
|
||||||
BOOST_PP_COMMA_IF(BOOST_PP_DEC(i)) \
|
BOOST_PP_COMMA_IF(BOOST_PP_DEC(i)) \
|
||||||
BOOST_MPL_PP_ENUM(BOOST_PP_DEC(i), int) \
|
BOOST_MPL_PP_ENUM_Z(z, BOOST_PP_DEC(i), int) \
|
||||||
>::type t1##i; \
|
>::type t1##i; \
|
||||||
\
|
\
|
||||||
typedef apply_< \
|
typedef apply_< \
|
||||||
test::last##i \
|
test::last##i \
|
||||||
, BOOST_MPL_PP_ENUM(BOOST_PP_DEC(i), int) \
|
, BOOST_MPL_PP_ENUM_Z(z, BOOST_PP_DEC(i), int) \
|
||||||
BOOST_PP_COMMA_IF(BOOST_PP_DEC(i)) char \
|
BOOST_PP_COMMA_IF(BOOST_PP_DEC(i)) char \
|
||||||
>::type t2##i; \
|
>::type t2##i; \
|
||||||
{ MPL_ASSERT(( boost::is_same<t1##i, char> )); } \
|
{ MPL_ASSERT(( boost::is_same<t1##i, char> )); } \
|
||||||
@@ -100,7 +100,7 @@ struct g0 { struct apply { typedef char type; }; };
|
|||||||
i \
|
i \
|
||||||
, APPLY_N_TEST \
|
, APPLY_N_TEST \
|
||||||
, APPLY_0_TEST \
|
, APPLY_0_TEST \
|
||||||
)(i, BOOST_PP_CAT(apply_wrap,i)) \
|
)(z, i, BOOST_PP_CAT(apply_wrap,i)) \
|
||||||
/**/
|
/**/
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -25,11 +25,11 @@
|
|||||||
#include <boost/preprocessor/enum_params.hpp>
|
#include <boost/preprocessor/enum_params.hpp>
|
||||||
#include <boost/preprocessor/facilities/intercept.hpp>
|
#include <boost/preprocessor/facilities/intercept.hpp>
|
||||||
|
|
||||||
#define TEST_N_ARY(unused1, N, unused2) \
|
#define TEST_N_ARY(z, N, unused2) \
|
||||||
static_assert_< \
|
static_assert_< \
|
||||||
apply< \
|
apply< \
|
||||||
and_<BOOST_PP_ENUM_PARAMS(N, _ BOOST_PP_INTERCEPT)>, \
|
and_<BOOST_PP_ENUM_PARAMS_Z(z, N, _ BOOST_PP_INTERCEPT)>, \
|
||||||
BOOST_PP_ENUM_PARAMS(N, true_ BOOST_PP_INTERCEPT) \
|
BOOST_PP_ENUM_PARAMS_Z(z, N, true_ BOOST_PP_INTERCEPT) \
|
||||||
> \
|
> \
|
||||||
>(); \
|
>(); \
|
||||||
/**/
|
/**/
|
||||||
|
|||||||
@@ -13,12 +13,17 @@
|
|||||||
|
|
||||||
#include <boost/mpl/char.hpp>
|
#include <boost/mpl/char.hpp>
|
||||||
#include <boost/preprocessor/repeat.hpp>
|
#include <boost/preprocessor/repeat.hpp>
|
||||||
|
#include <climits>
|
||||||
|
|
||||||
#include "integral_wrapper_test.hpp"
|
#include "integral_wrapper_test.hpp"
|
||||||
|
|
||||||
|
|
||||||
MPL_TEST_CASE()
|
MPL_TEST_CASE()
|
||||||
{
|
{
|
||||||
|
#if CHAR_MAX > 0
|
||||||
|
# define WRAPPER(T, i) char_<static_cast<char>(i)>
|
||||||
|
#else
|
||||||
# define WRAPPER(T, i) char_<i>
|
# define WRAPPER(T, i) char_<i>
|
||||||
|
#endif
|
||||||
BOOST_PP_REPEAT(10, INTEGRAL_WRAPPER_TEST, char)
|
BOOST_PP_REPEAT(10, INTEGRAL_WRAPPER_TEST, char)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
# Copyright 2018 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
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 3.5...3.16)
|
||||||
|
|
||||||
|
project(cmake_install_test LANGUAGES CXX)
|
||||||
|
|
||||||
|
find_package(boost_mpl REQUIRED)
|
||||||
|
|
||||||
|
add_executable(main main.cpp)
|
||||||
|
target_link_libraries(main Boost::mpl)
|
||||||
|
|
||||||
|
enable_testing()
|
||||||
|
add_test(NAME main COMMAND main)
|
||||||
|
|
||||||
|
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
// Copyright 2024 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/mpl/assert.hpp>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
BOOST_MPL_ASSERT_RELATION( 1, <, 5 );
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
# Copyright 2018 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
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 3.5...3.16)
|
||||||
|
|
||||||
|
project(cmake_subdir_test LANGUAGES CXX)
|
||||||
|
|
||||||
|
add_subdirectory(../.. boostorg/mpl)
|
||||||
|
|
||||||
|
add_subdirectory(../../../assert boostorg/assert)
|
||||||
|
add_subdirectory(../../../config boostorg/config)
|
||||||
|
add_subdirectory(../../../core boostorg/core)
|
||||||
|
add_subdirectory(../../../io boostorg/io)
|
||||||
|
add_subdirectory(../../../predef boostorg/predef)
|
||||||
|
add_subdirectory(../../../preprocessor boostorg/preprocessor)
|
||||||
|
add_subdirectory(../../../static_assert boostorg/static_assert)
|
||||||
|
add_subdirectory(../../../throw_exception boostorg/throw_exception)
|
||||||
|
add_subdirectory(../../../type_traits boostorg/type_traits)
|
||||||
|
add_subdirectory(../../../utility boostorg/utility)
|
||||||
|
|
||||||
|
add_executable(main main.cpp)
|
||||||
|
target_link_libraries(main Boost::mpl)
|
||||||
|
|
||||||
|
enable_testing()
|
||||||
|
add_test(NAME main COMMAND main)
|
||||||
|
|
||||||
|
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
// Copyright 2024 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/mpl/assert.hpp>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
BOOST_MPL_ASSERT_RELATION( 1, <, 5 );
|
||||||
|
}
|
||||||
+8
-3
@@ -13,6 +13,7 @@
|
|||||||
|
|
||||||
#include <boost/mpl/integral_c.hpp>
|
#include <boost/mpl/integral_c.hpp>
|
||||||
#include <boost/preprocessor/repeat.hpp>
|
#include <boost/preprocessor/repeat.hpp>
|
||||||
|
#include <climits>
|
||||||
|
|
||||||
#include "integral_wrapper_test.hpp"
|
#include "integral_wrapper_test.hpp"
|
||||||
|
|
||||||
@@ -21,10 +22,14 @@ MPL_TEST_CASE()
|
|||||||
{
|
{
|
||||||
# define WRAPPER(T, i) integral_c<T,i>
|
# define WRAPPER(T, i) integral_c<T,i>
|
||||||
|
|
||||||
#if !(defined(__APPLE_CC__) && defined(__GNUC__) && (__GNUC__ == 3) && (__GNUC_MINOR__ <= 3))
|
|
||||||
BOOST_PP_REPEAT(10, INTEGRAL_WRAPPER_TEST, char)
|
|
||||||
#endif
|
|
||||||
BOOST_PP_REPEAT(10, INTEGRAL_WRAPPER_TEST, short)
|
BOOST_PP_REPEAT(10, INTEGRAL_WRAPPER_TEST, short)
|
||||||
BOOST_PP_REPEAT(10, INTEGRAL_WRAPPER_TEST, int)
|
BOOST_PP_REPEAT(10, INTEGRAL_WRAPPER_TEST, int)
|
||||||
BOOST_PP_REPEAT(10, INTEGRAL_WRAPPER_TEST, long)
|
BOOST_PP_REPEAT(10, INTEGRAL_WRAPPER_TEST, long)
|
||||||
|
|
||||||
|
#if CHAR_MAX > 0
|
||||||
|
# undef WRAPPER
|
||||||
|
# define WRAPPER(T, i) integral_c<T,static_cast<T>(i)>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
BOOST_PP_REPEAT(10, INTEGRAL_WRAPPER_TEST, char)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|
||||||
#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600)
|
#if !BOOST_WORKAROUND(BOOST_BORLANDC, < 0x600)
|
||||||
# define INTEGRAL_WRAPPER_RUNTIME_TEST(i, T) \
|
# define INTEGRAL_WRAPPER_RUNTIME_TEST(i, T) \
|
||||||
BOOST_TEST(( WRAPPER(T,i)() == i )); \
|
BOOST_TEST(( WRAPPER(T,i)() == i )); \
|
||||||
BOOST_TEST(( WRAPPER(T,i)::value == i )); \
|
BOOST_TEST(( WRAPPER(T,i)::value == i )); \
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
#define CONSTEXPR_INTEGRAL_TEST(T, i) { static_assert(T() == i, "Constexpr for integral constant failed"); }
|
#define CONSTEXPR_INTEGRAL_TEST(T, i) { static_assert(T() == i, "Constexpr for integral constant failed"); }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
|
#if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x582))
|
||||||
// agurt 20/nov/06: see http://article.gmane.org/gmane.comp.lib.boost.devel/151065
|
// agurt 20/nov/06: see http://article.gmane.org/gmane.comp.lib.boost.devel/151065
|
||||||
#define INTEGRAL_WRAPPER_TEST(unused1, i, T) \
|
#define INTEGRAL_WRAPPER_TEST(unused1, i, T) \
|
||||||
{ \
|
{ \
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
// Copyright 2024 Peter Dimov
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// https://www.boost.org/LICENSE_1_0.txt
|
||||||
|
|
||||||
|
#include <boost/mpl/integral_c.hpp>
|
||||||
|
|
||||||
|
enum test { zero, one };
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
boost::mpl::integral_c<test, zero> m;
|
||||||
|
return m.value;
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
// Copyright 2025 Peter Dimov
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// https://www.boost.org/LICENSE_1_0.txt
|
||||||
|
|
||||||
|
// Check for conflicts with MS iso646.h, which defines macros for `and` et al
|
||||||
|
|
||||||
|
#include <ciso646>
|
||||||
|
#include <boost/mpl/and.hpp>
|
||||||
|
#include <boost/mpl/or.hpp>
|
||||||
|
#include <boost/mpl/bitand.hpp>
|
||||||
|
#include <boost/mpl/bitor.hpp>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
}
|
||||||
@@ -38,7 +38,7 @@ MPL_TEST_CASE()
|
|||||||
AUX_LAMBDA_TEST( int& );
|
AUX_LAMBDA_TEST( int& );
|
||||||
AUX_LAMBDA_TEST( int* );
|
AUX_LAMBDA_TEST( int* );
|
||||||
#if !BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, <= 0x0295) \
|
#if !BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, <= 0x0295) \
|
||||||
&& !BOOST_WORKAROUND(__BORLANDC__, < 0x600)
|
&& !BOOST_WORKAROUND(BOOST_BORLANDC, < 0x600)
|
||||||
AUX_LAMBDA_TEST( int[] );
|
AUX_LAMBDA_TEST( int[] );
|
||||||
#endif
|
#endif
|
||||||
AUX_LAMBDA_TEST( int[10] );
|
AUX_LAMBDA_TEST( int[10] );
|
||||||
|
|||||||
Reference in New Issue
Block a user