mirror of
https://github.com/boostorg/lambda.git
synced 2026-01-21 17:02:36 +00:00
Compare commits
1 Commits
develop
...
boost-1.47
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8ced199b41 |
643
.github/workflows/ci.yml
vendored
643
.github/workflows/ci.yml
vendored
@@ -1,643 +0,0 @@
|
|||||||
name: CI
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- develop
|
|
||||||
- feature/**
|
|
||||||
|
|
||||||
env:
|
|
||||||
UBSAN_OPTIONS: print_stacktrace=1
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
posix:
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- toolset: gcc-4.8
|
|
||||||
cxxstd: "11"
|
|
||||||
os: ubuntu-latest
|
|
||||||
container: ubuntu:18.04
|
|
||||||
install: g++-4.8
|
|
||||||
- toolset: gcc-5
|
|
||||||
cxxstd: "11,14,1z"
|
|
||||||
os: ubuntu-latest
|
|
||||||
container: ubuntu:18.04
|
|
||||||
install: g++-5
|
|
||||||
- toolset: gcc-6
|
|
||||||
cxxstd: "11,14,1z"
|
|
||||||
os: ubuntu-latest
|
|
||||||
container: ubuntu:18.04
|
|
||||||
install: g++-6
|
|
||||||
- toolset: gcc-7
|
|
||||||
cxxstd: "11,14,17"
|
|
||||||
container: ubuntu:20.04
|
|
||||||
os: ubuntu-latest
|
|
||||||
install: g++-7
|
|
||||||
- toolset: gcc-8
|
|
||||||
cxxstd: "11,14,17,2a"
|
|
||||||
container: ubuntu:20.04
|
|
||||||
os: ubuntu-latest
|
|
||||||
install: g++-8
|
|
||||||
- toolset: gcc-9
|
|
||||||
cxxstd: "11,14,17,2a"
|
|
||||||
container: ubuntu:20.04
|
|
||||||
os: ubuntu-latest
|
|
||||||
- toolset: gcc-10
|
|
||||||
cxxstd: "11,14,17,2a"
|
|
||||||
container: ubuntu:20.04
|
|
||||||
os: ubuntu-latest
|
|
||||||
install: g++-10
|
|
||||||
- toolset: gcc-11
|
|
||||||
cxxstd: "11,14,17,2a"
|
|
||||||
os: ubuntu-22.04
|
|
||||||
- toolset: gcc-12
|
|
||||||
cxxstd: "11,14,17,20,2b"
|
|
||||||
os: ubuntu-22.04
|
|
||||||
install: g++-12
|
|
||||||
- toolset: gcc-13
|
|
||||||
cxxstd: "11,14,17,20,2b"
|
|
||||||
container: ubuntu:24.04
|
|
||||||
os: ubuntu-latest
|
|
||||||
install: g++-13
|
|
||||||
- toolset: gcc-14
|
|
||||||
cxxstd: "11,14,17,20,2b"
|
|
||||||
container: ubuntu:24.04
|
|
||||||
os: ubuntu-latest
|
|
||||||
install: g++-14
|
|
||||||
- toolset: clang
|
|
||||||
compiler: clang++-3.9
|
|
||||||
cxxstd: "11,14"
|
|
||||||
os: ubuntu-latest
|
|
||||||
container: ubuntu:18.04
|
|
||||||
install: clang-3.9
|
|
||||||
- toolset: clang
|
|
||||||
compiler: clang++-4.0
|
|
||||||
cxxstd: "11,14"
|
|
||||||
os: ubuntu-latest
|
|
||||||
container: ubuntu:18.04
|
|
||||||
install: clang-4.0
|
|
||||||
- toolset: clang
|
|
||||||
compiler: clang++-5.0
|
|
||||||
cxxstd: "11,14,1z"
|
|
||||||
os: ubuntu-latest
|
|
||||||
container: ubuntu:18.04
|
|
||||||
install: clang-5.0
|
|
||||||
- toolset: clang
|
|
||||||
compiler: clang++-6.0
|
|
||||||
cxxstd: "11,14,17"
|
|
||||||
container: ubuntu:20.04
|
|
||||||
os: ubuntu-latest
|
|
||||||
install: clang-6.0
|
|
||||||
- toolset: clang
|
|
||||||
compiler: clang++-7
|
|
||||||
cxxstd: "11,14,17"
|
|
||||||
container: ubuntu:20.04
|
|
||||||
os: ubuntu-latest
|
|
||||||
install: clang-7
|
|
||||||
- toolset: clang
|
|
||||||
compiler: clang++-8
|
|
||||||
cxxstd: "11,14,17"
|
|
||||||
container: ubuntu:20.04
|
|
||||||
os: ubuntu-latest
|
|
||||||
install: clang-8
|
|
||||||
- toolset: clang
|
|
||||||
compiler: clang++-9
|
|
||||||
cxxstd: "11,14,17,2a"
|
|
||||||
container: ubuntu:20.04
|
|
||||||
os: ubuntu-latest
|
|
||||||
install: clang-9
|
|
||||||
- toolset: clang
|
|
||||||
compiler: clang++-10
|
|
||||||
cxxstd: "11,14,17,2a"
|
|
||||||
container: ubuntu:20.04
|
|
||||||
os: ubuntu-latest
|
|
||||||
install: clang-10
|
|
||||||
- toolset: clang
|
|
||||||
compiler: clang++-11
|
|
||||||
cxxstd: "11,14,17,2a"
|
|
||||||
container: ubuntu:20.04
|
|
||||||
os: ubuntu-latest
|
|
||||||
install: clang-11
|
|
||||||
- toolset: clang
|
|
||||||
compiler: clang++-12
|
|
||||||
cxxstd: "11,14,17,2a"
|
|
||||||
container: ubuntu:20.04
|
|
||||||
os: ubuntu-latest
|
|
||||||
install: clang-12
|
|
||||||
- toolset: clang
|
|
||||||
compiler: clang++-13
|
|
||||||
cxxstd: "11,14,17,20,2b"
|
|
||||||
container: ubuntu:22.04
|
|
||||||
os: ubuntu-latest
|
|
||||||
install: clang-13
|
|
||||||
- toolset: clang
|
|
||||||
compiler: clang++-14
|
|
||||||
cxxstd: "11,14,17,20,2b"
|
|
||||||
container: ubuntu:22.04
|
|
||||||
os: ubuntu-latest
|
|
||||||
install: clang-14
|
|
||||||
- toolset: clang
|
|
||||||
compiler: clang++-15
|
|
||||||
cxxstd: "11,14,17,20,2b"
|
|
||||||
container: ubuntu:22.04
|
|
||||||
os: ubuntu-latest
|
|
||||||
install: clang-15
|
|
||||||
- toolset: clang
|
|
||||||
compiler: clang++-16
|
|
||||||
cxxstd: "11,14,17,20,2b"
|
|
||||||
container: ubuntu:24.04
|
|
||||||
os: ubuntu-latest
|
|
||||||
install: clang-16
|
|
||||||
- toolset: clang
|
|
||||||
compiler: clang++-17
|
|
||||||
cxxstd: "11,14,17,20,2b"
|
|
||||||
container: ubuntu:24.04
|
|
||||||
os: ubuntu-latest
|
|
||||||
install: clang-17
|
|
||||||
- toolset: clang
|
|
||||||
compiler: clang++-18
|
|
||||||
cxxstd: "11,14,17,20,2b"
|
|
||||||
container: ubuntu:24.04
|
|
||||||
os: ubuntu-latest
|
|
||||||
install: clang-18
|
|
||||||
- toolset: clang
|
|
||||||
cxxstd: "11,14,17,20,2b"
|
|
||||||
os: macos-13
|
|
||||||
- toolset: clang
|
|
||||||
cxxstd: "11,14,17,20,2b"
|
|
||||||
os: macos-14
|
|
||||||
- toolset: clang
|
|
||||||
cxxstd: "11,14,17,20,2b"
|
|
||||||
os: macos-15
|
|
||||||
|
|
||||||
runs-on: ${{matrix.os}}
|
|
||||||
|
|
||||||
container:
|
|
||||||
image: ${{matrix.container}}
|
|
||||||
volumes:
|
|
||||||
- /node20217:/node20217:rw,rshared
|
|
||||||
- ${{ startsWith(matrix.container, 'ubuntu:1') && '/node20217:/__e/node20:ro,rshared' || ' ' }}
|
|
||||||
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Setup container environment
|
|
||||||
if: matrix.container
|
|
||||||
run: |
|
|
||||||
apt-get update
|
|
||||||
apt-get -y install sudo python3 git g++ curl xz-utils
|
|
||||||
|
|
||||||
- name: Install nodejs20glibc2.17
|
|
||||||
if: ${{ startsWith( matrix.container, 'ubuntu:1' ) }}
|
|
||||||
run: |
|
|
||||||
curl -LO https://archives.boost.io/misc/node/node-v20.9.0-linux-x64-glibc-217.tar.xz
|
|
||||||
tar -xf node-v20.9.0-linux-x64-glibc-217.tar.xz --strip-components 1 -C /node20217
|
|
||||||
ldd /__e/node20/bin/node
|
|
||||||
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Install packages
|
|
||||||
if: matrix.install
|
|
||||||
run: |
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get -y install ${{matrix.install}}
|
|
||||||
|
|
||||||
- name: Setup Boost
|
|
||||||
run: |
|
|
||||||
echo GITHUB_REPOSITORY: $GITHUB_REPOSITORY
|
|
||||||
LIBRARY=${GITHUB_REPOSITORY#*/}
|
|
||||||
echo LIBRARY: $LIBRARY
|
|
||||||
echo "LIBRARY=$LIBRARY" >> $GITHUB_ENV
|
|
||||||
echo GITHUB_BASE_REF: $GITHUB_BASE_REF
|
|
||||||
echo GITHUB_REF: $GITHUB_REF
|
|
||||||
REF=${GITHUB_BASE_REF:-$GITHUB_REF}
|
|
||||||
REF=${REF#refs/heads/}
|
|
||||||
echo REF: $REF
|
|
||||||
BOOST_BRANCH=develop && [ "$REF" == "master" ] && BOOST_BRANCH=master || true
|
|
||||||
echo BOOST_BRANCH: $BOOST_BRANCH
|
|
||||||
cd ..
|
|
||||||
git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
|
|
||||||
cd boost-root
|
|
||||||
cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY
|
|
||||||
git submodule update --init tools/boostdep
|
|
||||||
python3 tools/boostdep/depinst/depinst.py --git_args "--jobs 3" $LIBRARY
|
|
||||||
./bootstrap.sh
|
|
||||||
./b2 -d0 headers
|
|
||||||
|
|
||||||
- name: Create user-config.jam
|
|
||||||
if: matrix.compiler
|
|
||||||
run: |
|
|
||||||
echo "using ${{matrix.toolset}} : : ${{matrix.compiler}} ;" > ~/user-config.jam
|
|
||||||
|
|
||||||
- name: Run tests
|
|
||||||
run: |
|
|
||||||
cd ../boost-root
|
|
||||||
STDLIB=${{matrix.stdlib}}
|
|
||||||
./b2 -j3 libs/$LIBRARY/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} variant=debug,release ${STDLIB:+stdlib=$STDLIB}
|
|
||||||
|
|
||||||
windows:
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- toolset: msvc-14.0
|
|
||||||
cxxstd: "14,latest"
|
|
||||||
addrmd: 32,64
|
|
||||||
os: windows-2019
|
|
||||||
- toolset: msvc-14.2
|
|
||||||
cxxstd: "14,17,20,latest"
|
|
||||||
addrmd: 32,64
|
|
||||||
os: windows-2019
|
|
||||||
- toolset: msvc-14.3
|
|
||||||
cxxstd: "14,17,20,latest"
|
|
||||||
addrmd: 32,64
|
|
||||||
os: windows-2022
|
|
||||||
- toolset: clang-win
|
|
||||||
cxxstd: "14,17,latest"
|
|
||||||
addrmd: 32,64
|
|
||||||
os: windows-2022
|
|
||||||
- toolset: gcc
|
|
||||||
cxxstd: "11,14,17,2a"
|
|
||||||
addrmd: 64
|
|
||||||
os: windows-2019
|
|
||||||
|
|
||||||
runs-on: ${{matrix.os}}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Setup Boost
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
echo GITHUB_REPOSITORY: %GITHUB_REPOSITORY%
|
|
||||||
for /f %%i in ("%GITHUB_REPOSITORY%") do set LIBRARY=%%~nxi
|
|
||||||
echo LIBRARY: %LIBRARY%
|
|
||||||
echo LIBRARY=%LIBRARY%>>%GITHUB_ENV%
|
|
||||||
echo GITHUB_BASE_REF: %GITHUB_BASE_REF%
|
|
||||||
echo GITHUB_REF: %GITHUB_REF%
|
|
||||||
if "%GITHUB_BASE_REF%" == "" set GITHUB_BASE_REF=%GITHUB_REF%
|
|
||||||
set BOOST_BRANCH=develop
|
|
||||||
for /f %%i in ("%GITHUB_BASE_REF%") do if "%%~nxi" == "master" set BOOST_BRANCH=master
|
|
||||||
echo BOOST_BRANCH: %BOOST_BRANCH%
|
|
||||||
cd ..
|
|
||||||
git clone -b %BOOST_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root
|
|
||||||
cd boost-root
|
|
||||||
xcopy /s /e /q %GITHUB_WORKSPACE% libs\%LIBRARY%\
|
|
||||||
git submodule update --init tools/boostdep
|
|
||||||
python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" %LIBRARY%
|
|
||||||
cmd /c bootstrap
|
|
||||||
b2 -d0 headers
|
|
||||||
|
|
||||||
- name: Run tests
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
cd ../boost-root
|
|
||||||
b2 -j3 libs/%LIBRARY%/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} address-model=${{matrix.addrmd}} variant=debug,release
|
|
||||||
|
|
||||||
posix-cmake-subdir:
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- os: ubuntu-22.04
|
|
||||||
- os: ubuntu-24.04
|
|
||||||
- os: macos-13
|
|
||||||
- os: macos-14
|
|
||||||
- os: macos-15
|
|
||||||
|
|
||||||
runs-on: ${{matrix.os}}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Install packages
|
|
||||||
if: matrix.install
|
|
||||||
run: sudo apt install ${{matrix.install}}
|
|
||||||
|
|
||||||
- name: Setup Boost
|
|
||||||
run: |
|
|
||||||
echo GITHUB_REPOSITORY: $GITHUB_REPOSITORY
|
|
||||||
LIBRARY=${GITHUB_REPOSITORY#*/}
|
|
||||||
echo LIBRARY: $LIBRARY
|
|
||||||
echo "LIBRARY=$LIBRARY" >> $GITHUB_ENV
|
|
||||||
echo GITHUB_BASE_REF: $GITHUB_BASE_REF
|
|
||||||
echo GITHUB_REF: $GITHUB_REF
|
|
||||||
REF=${GITHUB_BASE_REF:-$GITHUB_REF}
|
|
||||||
REF=${REF#refs/heads/}
|
|
||||||
echo REF: $REF
|
|
||||||
BOOST_BRANCH=develop && [ "$REF" == "master" ] && BOOST_BRANCH=master || true
|
|
||||||
echo BOOST_BRANCH: $BOOST_BRANCH
|
|
||||||
cd ..
|
|
||||||
git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
|
|
||||||
cd boost-root
|
|
||||||
cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY
|
|
||||||
git submodule update --init tools/boostdep
|
|
||||||
python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" $LIBRARY
|
|
||||||
|
|
||||||
- name: Use library with add_subdirectory
|
|
||||||
run: |
|
|
||||||
cd ../boost-root/libs/$LIBRARY/test/cmake_subdir_test
|
|
||||||
mkdir __build__ && cd __build__
|
|
||||||
cmake ..
|
|
||||||
cmake --build .
|
|
||||||
ctest --output-on-failure --no-tests=error
|
|
||||||
|
|
||||||
posix-cmake-install:
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- os: ubuntu-22.04
|
|
||||||
- os: ubuntu-24.04
|
|
||||||
- os: macos-13
|
|
||||||
- os: macos-14
|
|
||||||
- os: macos-15
|
|
||||||
|
|
||||||
runs-on: ${{matrix.os}}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Install packages
|
|
||||||
if: matrix.install
|
|
||||||
run: sudo apt install ${{matrix.install}}
|
|
||||||
|
|
||||||
- name: Setup Boost
|
|
||||||
run: |
|
|
||||||
echo GITHUB_REPOSITORY: $GITHUB_REPOSITORY
|
|
||||||
LIBRARY=${GITHUB_REPOSITORY#*/}
|
|
||||||
echo LIBRARY: $LIBRARY
|
|
||||||
echo "LIBRARY=$LIBRARY" >> $GITHUB_ENV
|
|
||||||
echo GITHUB_BASE_REF: $GITHUB_BASE_REF
|
|
||||||
echo GITHUB_REF: $GITHUB_REF
|
|
||||||
REF=${GITHUB_BASE_REF:-$GITHUB_REF}
|
|
||||||
REF=${REF#refs/heads/}
|
|
||||||
echo REF: $REF
|
|
||||||
BOOST_BRANCH=develop && [ "$REF" == "master" ] && BOOST_BRANCH=master || true
|
|
||||||
echo BOOST_BRANCH: $BOOST_BRANCH
|
|
||||||
cd ..
|
|
||||||
git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
|
|
||||||
cd boost-root
|
|
||||||
cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY
|
|
||||||
git submodule update --init tools/boostdep
|
|
||||||
python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" $LIBRARY
|
|
||||||
|
|
||||||
- name: Configure
|
|
||||||
run: |
|
|
||||||
cd ../boost-root
|
|
||||||
mkdir __build__ && cd __build__
|
|
||||||
cmake -DBOOST_INCLUDE_LIBRARIES=$LIBRARY -DCMAKE_INSTALL_PREFIX=~/.local ..
|
|
||||||
|
|
||||||
- name: Install
|
|
||||||
run: |
|
|
||||||
cd ../boost-root/__build__
|
|
||||||
cmake --build . --target install
|
|
||||||
|
|
||||||
- name: Use the installed library
|
|
||||||
run: |
|
|
||||||
cd ../boost-root/libs/$LIBRARY/test/cmake_install_test && mkdir __build__ && cd __build__
|
|
||||||
cmake -DCMAKE_INSTALL_PREFIX=~/.local ..
|
|
||||||
cmake --build .
|
|
||||||
ctest --output-on-failure --no-tests=error
|
|
||||||
|
|
||||||
posix-cmake-test:
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- os: ubuntu-22.04
|
|
||||||
- os: ubuntu-24.04
|
|
||||||
- os: macos-13
|
|
||||||
- os: macos-14
|
|
||||||
- os: macos-15
|
|
||||||
|
|
||||||
runs-on: ${{matrix.os}}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Install packages
|
|
||||||
if: matrix.install
|
|
||||||
run: sudo apt install ${{matrix.install}}
|
|
||||||
|
|
||||||
- name: Setup Boost
|
|
||||||
run: |
|
|
||||||
echo GITHUB_REPOSITORY: $GITHUB_REPOSITORY
|
|
||||||
LIBRARY=${GITHUB_REPOSITORY#*/}
|
|
||||||
echo LIBRARY: $LIBRARY
|
|
||||||
echo "LIBRARY=$LIBRARY" >> $GITHUB_ENV
|
|
||||||
echo GITHUB_BASE_REF: $GITHUB_BASE_REF
|
|
||||||
echo GITHUB_REF: $GITHUB_REF
|
|
||||||
REF=${GITHUB_BASE_REF:-$GITHUB_REF}
|
|
||||||
REF=${REF#refs/heads/}
|
|
||||||
echo REF: $REF
|
|
||||||
BOOST_BRANCH=develop && [ "$REF" == "master" ] && BOOST_BRANCH=master || true
|
|
||||||
echo BOOST_BRANCH: $BOOST_BRANCH
|
|
||||||
cd ..
|
|
||||||
git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
|
|
||||||
cd boost-root
|
|
||||||
cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY
|
|
||||||
git submodule update --init tools/boostdep
|
|
||||||
python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" $LIBRARY
|
|
||||||
|
|
||||||
- name: Configure
|
|
||||||
run: |
|
|
||||||
cd ../boost-root
|
|
||||||
mkdir __build__ && cd __build__
|
|
||||||
cmake -DBOOST_INCLUDE_LIBRARIES=$LIBRARY -DBUILD_TESTING=ON ..
|
|
||||||
|
|
||||||
- name: Build tests
|
|
||||||
run: |
|
|
||||||
cd ../boost-root/__build__
|
|
||||||
cmake --build . --target tests
|
|
||||||
|
|
||||||
- name: Run tests
|
|
||||||
run: |
|
|
||||||
cd ../boost-root/__build__
|
|
||||||
ctest --output-on-failure --no-tests=error
|
|
||||||
|
|
||||||
windows-cmake-subdir:
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- os: windows-2019
|
|
||||||
- os: windows-2022
|
|
||||||
|
|
||||||
runs-on: ${{matrix.os}}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Setup Boost
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
echo GITHUB_REPOSITORY: %GITHUB_REPOSITORY%
|
|
||||||
for /f %%i in ("%GITHUB_REPOSITORY%") do set LIBRARY=%%~nxi
|
|
||||||
echo LIBRARY: %LIBRARY%
|
|
||||||
echo LIBRARY=%LIBRARY%>>%GITHUB_ENV%
|
|
||||||
echo GITHUB_BASE_REF: %GITHUB_BASE_REF%
|
|
||||||
echo GITHUB_REF: %GITHUB_REF%
|
|
||||||
if "%GITHUB_BASE_REF%" == "" set GITHUB_BASE_REF=%GITHUB_REF%
|
|
||||||
set BOOST_BRANCH=develop
|
|
||||||
for /f %%i in ("%GITHUB_BASE_REF%") do if "%%~nxi" == "master" set BOOST_BRANCH=master
|
|
||||||
echo BOOST_BRANCH: %BOOST_BRANCH%
|
|
||||||
cd ..
|
|
||||||
git clone -b %BOOST_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root
|
|
||||||
cd boost-root
|
|
||||||
xcopy /s /e /q %GITHUB_WORKSPACE% libs\%LIBRARY%\
|
|
||||||
git submodule update --init tools/boostdep
|
|
||||||
python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" %LIBRARY%
|
|
||||||
|
|
||||||
- name: Use library with add_subdirectory (Debug)
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
cd ../boost-root/libs/%LIBRARY%/test/cmake_subdir_test
|
|
||||||
mkdir __build__ && cd __build__
|
|
||||||
cmake ..
|
|
||||||
cmake --build . --config Debug
|
|
||||||
ctest --output-on-failure --no-tests=error -C Debug
|
|
||||||
|
|
||||||
- name: Use library with add_subdirectory (Release)
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
cd ../boost-root/libs/%LIBRARY%/test/cmake_subdir_test/__build__
|
|
||||||
cmake --build . --config Release
|
|
||||||
ctest --output-on-failure --no-tests=error -C Release
|
|
||||||
|
|
||||||
windows-cmake-install:
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- os: windows-2019
|
|
||||||
- os: windows-2022
|
|
||||||
|
|
||||||
runs-on: ${{matrix.os}}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Setup Boost
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
echo GITHUB_REPOSITORY: %GITHUB_REPOSITORY%
|
|
||||||
for /f %%i in ("%GITHUB_REPOSITORY%") do set LIBRARY=%%~nxi
|
|
||||||
echo LIBRARY: %LIBRARY%
|
|
||||||
echo LIBRARY=%LIBRARY%>>%GITHUB_ENV%
|
|
||||||
echo GITHUB_BASE_REF: %GITHUB_BASE_REF%
|
|
||||||
echo GITHUB_REF: %GITHUB_REF%
|
|
||||||
if "%GITHUB_BASE_REF%" == "" set GITHUB_BASE_REF=%GITHUB_REF%
|
|
||||||
set BOOST_BRANCH=develop
|
|
||||||
for /f %%i in ("%GITHUB_BASE_REF%") do if "%%~nxi" == "master" set BOOST_BRANCH=master
|
|
||||||
echo BOOST_BRANCH: %BOOST_BRANCH%
|
|
||||||
cd ..
|
|
||||||
git clone -b %BOOST_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root
|
|
||||||
cd boost-root
|
|
||||||
xcopy /s /e /q %GITHUB_WORKSPACE% libs\%LIBRARY%\
|
|
||||||
git submodule update --init tools/boostdep
|
|
||||||
python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" %LIBRARY%
|
|
||||||
|
|
||||||
- name: Configure
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
cd ../boost-root
|
|
||||||
mkdir __build__ && cd __build__
|
|
||||||
cmake -DBOOST_INCLUDE_LIBRARIES=%LIBRARY% -DCMAKE_INSTALL_PREFIX=C:/cmake-prefix ..
|
|
||||||
|
|
||||||
- name: Install (Debug)
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
cd ../boost-root/__build__
|
|
||||||
cmake --build . --target install --config Debug
|
|
||||||
|
|
||||||
- name: Install (Release)
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
cd ../boost-root/__build__
|
|
||||||
cmake --build . --target install --config Release
|
|
||||||
|
|
||||||
- name: Use the installed library (Debug)
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
cd ../boost-root/libs/%LIBRARY%/test/cmake_install_test && mkdir __build__ && cd __build__
|
|
||||||
cmake -DCMAKE_INSTALL_PREFIX=C:/cmake-prefix ..
|
|
||||||
cmake --build . --config Debug
|
|
||||||
ctest --output-on-failure --no-tests=error -C Debug
|
|
||||||
|
|
||||||
- name: Use the installed library (Release)
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
cd ../boost-root/libs/%LIBRARY%/test/cmake_install_test/__build__
|
|
||||||
cmake --build . --config Release
|
|
||||||
ctest --output-on-failure --no-tests=error -C Release
|
|
||||||
|
|
||||||
windows-cmake-test:
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- os: windows-2019
|
|
||||||
- os: windows-2022
|
|
||||||
|
|
||||||
runs-on: ${{matrix.os}}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Setup Boost
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
echo GITHUB_REPOSITORY: %GITHUB_REPOSITORY%
|
|
||||||
for /f %%i in ("%GITHUB_REPOSITORY%") do set LIBRARY=%%~nxi
|
|
||||||
echo LIBRARY: %LIBRARY%
|
|
||||||
echo LIBRARY=%LIBRARY%>>%GITHUB_ENV%
|
|
||||||
echo GITHUB_BASE_REF: %GITHUB_BASE_REF%
|
|
||||||
echo GITHUB_REF: %GITHUB_REF%
|
|
||||||
if "%GITHUB_BASE_REF%" == "" set GITHUB_BASE_REF=%GITHUB_REF%
|
|
||||||
set BOOST_BRANCH=develop
|
|
||||||
for /f %%i in ("%GITHUB_BASE_REF%") do if "%%~nxi" == "master" set BOOST_BRANCH=master
|
|
||||||
echo BOOST_BRANCH: %BOOST_BRANCH%
|
|
||||||
cd ..
|
|
||||||
git clone -b %BOOST_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root
|
|
||||||
cd boost-root
|
|
||||||
xcopy /s /e /q %GITHUB_WORKSPACE% libs\%LIBRARY%\
|
|
||||||
git submodule update --init tools/boostdep
|
|
||||||
python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" %LIBRARY%
|
|
||||||
|
|
||||||
- name: Configure
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
cd ../boost-root
|
|
||||||
mkdir __build__ && cd __build__
|
|
||||||
cmake -DBOOST_INCLUDE_LIBRARIES=%LIBRARY% -DBUILD_TESTING=ON ..
|
|
||||||
|
|
||||||
- name: Build tests (Debug)
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
cd ../boost-root/__build__
|
|
||||||
cmake --build . --target tests --config Debug
|
|
||||||
|
|
||||||
- name: Run tests (Debug)
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
cd ../boost-root/__build__
|
|
||||||
ctest --output-on-failure --no-tests=error -C Debug
|
|
||||||
|
|
||||||
- name: Build tests (Release)
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
cd ../boost-root/__build__
|
|
||||||
cmake --build . --target tests --config Release
|
|
||||||
|
|
||||||
- name: Run tests (Release)
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
cd ../boost-root/__build__
|
|
||||||
ctest --output-on-failure --no-tests=error -C Release
|
|
||||||
163
.travis.yml
163
.travis.yml
@@ -1,163 +0,0 @@
|
|||||||
# Copyright 2016 Edward Diener
|
|
||||||
# Copyright 2016, 2017, 2021 Peter Dimov
|
|
||||||
# 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)
|
|
||||||
|
|
||||||
language: cpp
|
|
||||||
|
|
||||||
dist: xenial
|
|
||||||
|
|
||||||
branches:
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
- develop
|
|
||||||
- /feature\/.*/
|
|
||||||
|
|
||||||
env:
|
|
||||||
matrix:
|
|
||||||
- BOGUS_JOB=true
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
|
|
||||||
exclude:
|
|
||||||
- env: BOGUS_JOB=true
|
|
||||||
|
|
||||||
include:
|
|
||||||
- os: linux
|
|
||||||
compiler: g++-4.4
|
|
||||||
env: TOOLSET=gcc CXXSTD=98
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- g++-4.4
|
|
||||||
sources:
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
|
|
||||||
- os: linux
|
|
||||||
compiler: g++-4.6
|
|
||||||
env: TOOLSET=gcc CXXSTD=03,0x
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- g++-4.6
|
|
||||||
sources:
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
|
|
||||||
- os: linux
|
|
||||||
compiler: g++-4.8
|
|
||||||
env: TOOLSET=gcc CXXSTD=03,11
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- g++-4.8
|
|
||||||
sources:
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
|
|
||||||
- os: linux
|
|
||||||
compiler: g++-5
|
|
||||||
env: TOOLSET=gcc CXXSTD=03,11,14
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- g++-5
|
|
||||||
sources:
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
|
|
||||||
- os: linux
|
|
||||||
compiler: g++-7
|
|
||||||
env: TOOLSET=gcc CXXSTD=03,11,14,17
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- g++-7
|
|
||||||
sources:
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
|
|
||||||
- os: linux
|
|
||||||
compiler: g++-9
|
|
||||||
env: TOOLSET=gcc CXXSTD=03,11,14,17
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- g++-9
|
|
||||||
sources:
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
|
|
||||||
- os: linux
|
|
||||||
dist: bionic
|
|
||||||
compiler: g++-10
|
|
||||||
env: TOOLSET=gcc CXXSTD=03,11,14,17,2a
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- g++-10
|
|
||||||
sources:
|
|
||||||
- sourceline: "ppa:ubuntu-toolchain-r/test"
|
|
||||||
|
|
||||||
- os: linux
|
|
||||||
dist: bionic
|
|
||||||
compiler: g++-11
|
|
||||||
env: UBSAN=1 TOOLSET=gcc CXXSTD=03,11,14,17,20 UBSAN_OPTIONS=print_stacktrace=1 LINKFLAGS=-fuse-ld=gold
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- g++-11
|
|
||||||
sources:
|
|
||||||
- sourceline: "ppa:ubuntu-toolchain-r/test"
|
|
||||||
|
|
||||||
- os: linux
|
|
||||||
compiler: clang++-11
|
|
||||||
env: TOOLSET=clang CXXSTD=03,11,14,17,20
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- clang-11
|
|
||||||
sources:
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
- sourceline: 'deb https://apt.llvm.org/xenial/ llvm-toolchain-xenial-11 main'
|
|
||||||
key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
|
|
||||||
|
|
||||||
- os: linux
|
|
||||||
compiler: clang++-12
|
|
||||||
env: UBSAN=1 TOOLSET=clang CXXSTD=03,11,14,17,20 UBSAN_OPTIONS=print_stacktrace=1
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- clang-12
|
|
||||||
sources:
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
- sourceline: 'deb https://apt.llvm.org/xenial/ llvm-toolchain-xenial-12 main'
|
|
||||||
key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
|
|
||||||
|
|
||||||
- os: linux
|
|
||||||
dist: bionic
|
|
||||||
compiler: clang++-libc++
|
|
||||||
env: TOOLSET=clang CXXSTD=03,11,14,17,2a
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- libc++-dev
|
|
||||||
|
|
||||||
- os: osx
|
|
||||||
compiler: clang++
|
|
||||||
env: UBSAN=1 TOOLSET=clang CXXSTD=03,11,14,1z UBSAN_OPTIONS=print_stacktrace=1
|
|
||||||
|
|
||||||
install:
|
|
||||||
- BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
|
|
||||||
- cd ..
|
|
||||||
- git clone -b $BOOST_BRANCH https://github.com/boostorg/boost.git boost-root
|
|
||||||
- cd boost-root
|
|
||||||
- git submodule update --init tools/boostdep
|
|
||||||
- cp -r $TRAVIS_BUILD_DIR/* libs/lambda
|
|
||||||
- python tools/boostdep/depinst/depinst.py lambda
|
|
||||||
- ./bootstrap.sh
|
|
||||||
- ./b2 headers
|
|
||||||
|
|
||||||
script:
|
|
||||||
- |-
|
|
||||||
echo "using $TOOLSET : : $TRAVIS_COMPILER ;" > ~/user-config.jam
|
|
||||||
- ./b2 -j3 libs/lambda/test toolset=$TOOLSET cxxstd=$CXXSTD variant=debug,release ${UBSAN:+cxxflags=-fsanitize=undefined cxxflags=-fno-sanitize-recover=undefined linkflags=-fsanitize=undefined define=UBSAN=1 debug-symbols=on} ${LINKFLAGS:+linkflags=$LINKFLAGS}
|
|
||||||
|
|
||||||
notifications:
|
|
||||||
email:
|
|
||||||
on_success: always
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
# Generated by `boostdep --cmake lambda`
|
|
||||||
# Copyright 2020 Peter Dimov
|
|
||||||
# Distributed under the Boost Software License, Version 1.0.
|
|
||||||
# https://www.boost.org/LICENSE_1_0.txt
|
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.5...3.16)
|
|
||||||
|
|
||||||
project(boost_lambda VERSION "${BOOST_SUPERPROJECT_VERSION}" LANGUAGES CXX)
|
|
||||||
|
|
||||||
add_library(boost_lambda INTERFACE)
|
|
||||||
add_library(Boost::lambda ALIAS boost_lambda)
|
|
||||||
|
|
||||||
target_include_directories(boost_lambda INTERFACE include)
|
|
||||||
|
|
||||||
target_link_libraries(boost_lambda
|
|
||||||
INTERFACE
|
|
||||||
Boost::bind
|
|
||||||
Boost::config
|
|
||||||
Boost::core
|
|
||||||
Boost::detail
|
|
||||||
Boost::iterator
|
|
||||||
Boost::mpl
|
|
||||||
Boost::preprocessor
|
|
||||||
Boost::tuple
|
|
||||||
Boost::type_traits
|
|
||||||
Boost::utility
|
|
||||||
)
|
|
||||||
|
|
||||||
if(BUILD_TESTING AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt")
|
|
||||||
|
|
||||||
add_subdirectory(test)
|
|
||||||
|
|
||||||
endif()
|
|
||||||
|
|
||||||
46
appveyor.yml
46
appveyor.yml
@@ -1,46 +0,0 @@
|
|||||||
# Copyright 2016-2021 Peter Dimov
|
|
||||||
# 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)
|
|
||||||
|
|
||||||
version: 1.0.{build}-{branch}
|
|
||||||
|
|
||||||
shallow_clone: true
|
|
||||||
|
|
||||||
branches:
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
- develop
|
|
||||||
- /feature\/.*/
|
|
||||||
|
|
||||||
environment:
|
|
||||||
matrix:
|
|
||||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
|
||||||
TOOLSET: msvc-14.0
|
|
||||||
ADDRMD: 32,64
|
|
||||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
|
||||||
TOOLSET: msvc-14.1
|
|
||||||
CXXSTD: 14,17,latest
|
|
||||||
ADDRMD: 32,64
|
|
||||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
|
||||||
TOOLSET: clang-win
|
|
||||||
CXXSTD: 14,17,latest
|
|
||||||
ADDRMD: 32,64
|
|
||||||
|
|
||||||
install:
|
|
||||||
- set BOOST_BRANCH=develop
|
|
||||||
- if "%APPVEYOR_REPO_BRANCH%" == "master" set BOOST_BRANCH=master
|
|
||||||
- cd ..
|
|
||||||
- git clone -b %BOOST_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root
|
|
||||||
- cd boost-root
|
|
||||||
- git submodule update --init tools/boostdep
|
|
||||||
- xcopy /s /e /q %APPVEYOR_BUILD_FOLDER% libs\lambda\
|
|
||||||
- python tools/boostdep/depinst/depinst.py lambda
|
|
||||||
- cmd /c bootstrap
|
|
||||||
- b2 -d0 headers
|
|
||||||
|
|
||||||
build: off
|
|
||||||
|
|
||||||
test_script:
|
|
||||||
- if not "%CXXSTD%" == "" set CXXSTD=cxxstd=%CXXSTD%
|
|
||||||
- if not "%ADDRMD%" == "" set ADDRMD=address-model=%ADDRMD%
|
|
||||||
- b2 -j3 libs/lambda/test toolset=%TOOLSET% %CXXSTD% %ADDRMD% variant=debug,release embed-manifest-via=linker
|
|
||||||
30
build.jam
30
build.jam
@@ -1,30 +0,0 @@
|
|||||||
# 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/bind//boost_bind
|
|
||||||
/boost/config//boost_config
|
|
||||||
/boost/core//boost_core
|
|
||||||
/boost/detail//boost_detail
|
|
||||||
/boost/iterator//boost_iterator
|
|
||||||
/boost/mpl//boost_mpl
|
|
||||||
/boost/preprocessor//boost_preprocessor
|
|
||||||
/boost/tuple//boost_tuple
|
|
||||||
/boost/type_traits//boost_type_traits
|
|
||||||
/boost/utility//boost_utility ;
|
|
||||||
|
|
||||||
project /boost/lambda
|
|
||||||
;
|
|
||||||
|
|
||||||
explicit
|
|
||||||
[ alias boost_lambda : : :
|
|
||||||
: <include>include <library>$(boost_dependencies) ]
|
|
||||||
[ alias all : boost_lambda test ]
|
|
||||||
;
|
|
||||||
|
|
||||||
call-if : boost-library lambda
|
|
||||||
;
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
project lambda/doc ;
|
project boost/doc ;
|
||||||
import boostbook : boostbook ;
|
import boostbook : boostbook ;
|
||||||
|
|
||||||
# Are these really the correct images??
|
# Are these really the correct images??
|
||||||
@@ -10,12 +10,3 @@ boostbook lambda-doc : lambda.xml
|
|||||||
<format>pdf:<xsl:param>img.src.path=$(images)/
|
<format>pdf:<xsl:param>img.src.path=$(images)/
|
||||||
;
|
;
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
alias boostdoc
|
|
||||||
: lambda.xml
|
|
||||||
:
|
|
||||||
:
|
|
||||||
: ;
|
|
||||||
explicit boostdoc ;
|
|
||||||
alias boostrelease ;
|
|
||||||
explicit boostrelease ;
|
|
||||||
|
|||||||
@@ -3281,7 +3281,7 @@ was dropped.
|
|||||||
<abbrev>SGI02</abbrev>
|
<abbrev>SGI02</abbrev>
|
||||||
<title>The SGI Standard Template Library</title>
|
<title>The SGI Standard Template Library</title>
|
||||||
<pubdate>2002</pubdate>
|
<pubdate>2002</pubdate>
|
||||||
<bibliomisc><ulink url="https://www.boost.org/sgi/stl/">www.boost.org/sgi/stl/</ulink></bibliomisc>
|
<bibliomisc><ulink url="http://www.sgi.com/tech/stl/">www.sgi.com/tech/stl/</ulink></bibliomisc>
|
||||||
|
|
||||||
</biblioentry>
|
</biblioentry>
|
||||||
|
|
||||||
@@ -3435,7 +3435,7 @@ was dropped.
|
|||||||
<firstname>Brian</firstname>
|
<firstname>Brian</firstname>
|
||||||
<surname>McNamara</surname>
|
<surname>McNamara</surname>
|
||||||
</author>
|
</author>
|
||||||
<bibliomisc><ulink url="http://yanniss.github.io/fc++/">yanniss.github.io/fc++/ </ulink>
|
<bibliomisc><ulink url="http://www.cc.gatech.edu/~yannis/fc++/">www.cc.gatech.edu/~yannis/fc++/</ulink>
|
||||||
</bibliomisc>
|
</bibliomisc>
|
||||||
<pubdate>2002</pubdate>
|
<pubdate>2002</pubdate>
|
||||||
</biblioentry>
|
</biblioentry>
|
||||||
|
|||||||
@@ -3286,7 +3286,7 @@ was dropped.
|
|||||||
<abbrev>SGI02</abbrev>
|
<abbrev>SGI02</abbrev>
|
||||||
<title>The SGI Standard Template Library</title>
|
<title>The SGI Standard Template Library</title>
|
||||||
<pubdate>2002</pubdate>
|
<pubdate>2002</pubdate>
|
||||||
<bibliomisc><ulink url="https://www.boost.org/sgi/stl/">www.boost.org/sgi/stl/</ulink></bibliomisc>
|
<bibliomisc><ulink url="http://www.sgi.com/tech/stl/">www.sgi.com/tech/stl/</ulink></bibliomisc>
|
||||||
|
|
||||||
</biblioentry>
|
</biblioentry>
|
||||||
|
|
||||||
@@ -3440,7 +3440,7 @@ was dropped.
|
|||||||
<firstname>Brian</firstname>
|
<firstname>Brian</firstname>
|
||||||
<surname>McNamara</surname>
|
<surname>McNamara</surname>
|
||||||
</author>
|
</author>
|
||||||
<bibliomisc><ulink url="http://yanniss.github.io/fc++/">yanniss.github.io/fc++/ </ulink>
|
<bibliomisc><ulink url="http://www.cc.gatech.edu/~yannis/fc++/">www.cc.gatech.edu/~yannis/fc++/</ulink>
|
||||||
</bibliomisc>
|
</bibliomisc>
|
||||||
<pubdate>2002</pubdate>
|
<pubdate>2002</pubdate>
|
||||||
</biblioentry>
|
</biblioentry>
|
||||||
|
|||||||
@@ -684,8 +684,6 @@ struct rotate_copy {
|
|||||||
|
|
||||||
// random_shuffle ---------------------------------
|
// random_shuffle ---------------------------------
|
||||||
|
|
||||||
#ifndef BOOST_NO_CXX98_RANDOM_SHUFFLE
|
|
||||||
|
|
||||||
struct random_shuffle {
|
struct random_shuffle {
|
||||||
|
|
||||||
template <class Args>
|
template <class Args>
|
||||||
@@ -705,7 +703,6 @@ struct random_shuffle {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// partition ---------------------------------
|
// partition ---------------------------------
|
||||||
|
|
||||||
|
|||||||
@@ -14,11 +14,6 @@
|
|||||||
|
|
||||||
#include "boost/lambda/core.hpp"
|
#include "boost/lambda/core.hpp"
|
||||||
|
|
||||||
// Required for std::is_assignable to work on the result of bind()
|
|
||||||
#include "boost/lambda/detail/operator_actions.hpp"
|
|
||||||
#include "boost/lambda/detail/operator_lambda_func_base.hpp"
|
|
||||||
#include "boost/lambda/detail/operator_return_type_traits.hpp"
|
|
||||||
|
|
||||||
#include "boost/lambda/detail/bind_functions.hpp"
|
#include "boost/lambda/detail/bind_functions.hpp"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -11,8 +11,8 @@
|
|||||||
URL: http://spirit.sourceforge.net/
|
URL: http://spirit.sourceforge.net/
|
||||||
|
|
||||||
==============================================================================*/
|
==============================================================================*/
|
||||||
#ifndef BOOST_LAMBDA_CLOSURES_HPP
|
#ifndef PHOENIX_CLOSURES_HPP
|
||||||
#define BOOST_LAMBDA_CLOSURES_HPP
|
#define PHOENIX_CLOSURES_HPP
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#include "boost/lambda/core.hpp"
|
#include "boost/lambda/core.hpp"
|
||||||
|
|||||||
@@ -16,11 +16,6 @@
|
|||||||
|
|
||||||
#include "boost/type_traits/remove_cv.hpp"
|
#include "boost/type_traits/remove_cv.hpp"
|
||||||
#include "boost/type_traits/is_pointer.hpp"
|
#include "boost/type_traits/is_pointer.hpp"
|
||||||
#include "boost/config.hpp"
|
|
||||||
|
|
||||||
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
|
||||||
#include <utility>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace boost {
|
namespace boost {
|
||||||
namespace lambda {
|
namespace lambda {
|
||||||
@@ -33,12 +28,6 @@ template<class T> struct constructor {
|
|||||||
|
|
||||||
template <class U> struct sig { typedef T type; };
|
template <class U> struct sig { typedef T type; };
|
||||||
|
|
||||||
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
|
||||||
template <class... Args>
|
|
||||||
T operator()(Args&&... args) const {
|
|
||||||
return T(std::forward<Args>(args)...);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
T operator()() const {
|
T operator()() const {
|
||||||
return T();
|
return T();
|
||||||
}
|
}
|
||||||
@@ -92,7 +81,6 @@ template<class T> struct constructor {
|
|||||||
T operator()(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10) const {
|
T operator()(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10) const {
|
||||||
return T(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
|
return T(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -149,12 +137,6 @@ template<class T> struct new_ptr {
|
|||||||
|
|
||||||
template <class U> struct sig { typedef T* type; };
|
template <class U> struct sig { typedef T* type; };
|
||||||
|
|
||||||
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
|
||||||
template <class... Args>
|
|
||||||
T* operator()(Args&&... args) const {
|
|
||||||
return new T(std::forward<Args>(args)...);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
T* operator()() const {
|
T* operator()() const {
|
||||||
return new T();
|
return new T();
|
||||||
}
|
}
|
||||||
@@ -208,7 +190,6 @@ template<class T> struct new_ptr {
|
|||||||
T* operator()(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10) const {
|
T* operator()(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10) const {
|
||||||
return new T(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
|
return new T(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -22,8 +22,6 @@
|
|||||||
#ifndef BOOST_LAMBDA_CORE_HPP
|
#ifndef BOOST_LAMBDA_CORE_HPP
|
||||||
#define BOOST_LAMBDA_CORE_HPP
|
#define BOOST_LAMBDA_CORE_HPP
|
||||||
|
|
||||||
#include "boost/config.hpp"
|
|
||||||
|
|
||||||
#include "boost/type_traits/transform_traits.hpp"
|
#include "boost/type_traits/transform_traits.hpp"
|
||||||
#include "boost/type_traits/cv_traits.hpp"
|
#include "boost/type_traits/cv_traits.hpp"
|
||||||
|
|
||||||
@@ -68,9 +66,9 @@ namespace {
|
|||||||
boost::lambda::placeholder2_type free2 = boost::lambda::placeholder2_type();
|
boost::lambda::placeholder2_type free2 = boost::lambda::placeholder2_type();
|
||||||
boost::lambda::placeholder3_type free3 = boost::lambda::placeholder3_type();
|
boost::lambda::placeholder3_type free3 = boost::lambda::placeholder3_type();
|
||||||
|
|
||||||
boost::lambda::placeholder1_type& BOOST_ATTRIBUTE_UNUSED _1 = free1;
|
boost::lambda::placeholder1_type& _1 = free1;
|
||||||
boost::lambda::placeholder2_type& BOOST_ATTRIBUTE_UNUSED _2 = free2;
|
boost::lambda::placeholder2_type& _2 = free2;
|
||||||
boost::lambda::placeholder3_type& BOOST_ATTRIBUTE_UNUSED _3 = free3;
|
boost::lambda::placeholder3_type& _3 = free3;
|
||||||
// _1, _2, ... naming scheme by Peter Dimov
|
// _1, _2, ... naming scheme by Peter Dimov
|
||||||
} // unnamed
|
} // unnamed
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,13 @@
|
|||||||
# define BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
|
# define BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
|
||||||
# define BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
|
# define BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
|
||||||
# endif
|
# endif
|
||||||
|
# if (__GNUC__ == 2 && __GNUC_MINOR__ <= 97)
|
||||||
|
# define BOOST_NO_TEMPLATED_STREAMS
|
||||||
|
# define BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
|
||||||
|
# endif
|
||||||
|
# if (__GNUC__ == 2 && __GNUC_MINOR__ <= 95)
|
||||||
|
# define BOOST_LAMBDA_FAILS_IN_TEMPLATE_KEYWORD_AFTER_SCOPE_OPER
|
||||||
|
# endif
|
||||||
# endif // __GNUC__
|
# endif // __GNUC__
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,6 @@
|
|||||||
|
|
||||||
#include <boost/config.hpp>
|
#include <boost/config.hpp>
|
||||||
#include <boost/detail/workaround.hpp>
|
#include <boost/detail/workaround.hpp>
|
||||||
#include <boost/utility/result_of.hpp>
|
|
||||||
|
|
||||||
#if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
|
#if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
|
||||||
|
|
||||||
@@ -298,38 +297,6 @@ public:
|
|||||||
} // namespace lambda
|
} // namespace lambda
|
||||||
} // namespace boost
|
} // namespace boost
|
||||||
|
|
||||||
namespace boost {
|
|
||||||
|
|
||||||
#if !defined(BOOST_RESULT_OF_USE_DECLTYPE) || defined(BOOST_NO_CXX11_DECLTYPE)
|
|
||||||
|
|
||||||
template<class T>
|
|
||||||
struct result_of<boost::lambda::lambda_functor<T>()>
|
|
||||||
{
|
|
||||||
typedef typename boost::lambda::lambda_functor<T>::nullary_return_type type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<class T>
|
|
||||||
struct result_of<const boost::lambda::lambda_functor<T>()>
|
|
||||||
{
|
|
||||||
typedef typename boost::lambda::lambda_functor<T>::nullary_return_type type;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
template<class T>
|
|
||||||
struct tr1_result_of<boost::lambda::lambda_functor<T>()>
|
|
||||||
{
|
|
||||||
typedef typename boost::lambda::lambda_functor<T>::nullary_return_type type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<class T>
|
|
||||||
struct tr1_result_of<const boost::lambda::lambda_functor<T>()>
|
|
||||||
{
|
|
||||||
typedef typename boost::lambda::lambda_functor<T>::nullary_return_type type;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// is_placeholder
|
// is_placeholder
|
||||||
|
|
||||||
#include <boost/is_placeholder.hpp>
|
#include <boost/is_placeholder.hpp>
|
||||||
|
|||||||
@@ -282,11 +282,6 @@ struct const_copy_argument<void> {
|
|||||||
typedef void type;
|
typedef void type;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
|
||||||
struct const_copy_argument<void const> {
|
|
||||||
typedef void type;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// Does the same as const_copy_argument, but passes references through as such
|
// Does the same as const_copy_argument, but passes references through as such
|
||||||
template<class T>
|
template<class T>
|
||||||
|
|||||||
@@ -12,13 +12,7 @@
|
|||||||
#define BOOST_LAMBDA_OPERATOR_RETURN_TYPE_TRAITS_HPP
|
#define BOOST_LAMBDA_OPERATOR_RETURN_TYPE_TRAITS_HPP
|
||||||
|
|
||||||
#include "boost/lambda/detail/is_instance_of.hpp"
|
#include "boost/lambda/detail/is_instance_of.hpp"
|
||||||
#include "boost/type_traits/is_same.hpp"
|
#include "boost/type_traits/same_traits.hpp"
|
||||||
#include "boost/type_traits/is_pointer.hpp"
|
|
||||||
#include "boost/type_traits/is_float.hpp"
|
|
||||||
#include "boost/type_traits/is_convertible.hpp"
|
|
||||||
#include "boost/type_traits/remove_pointer.hpp"
|
|
||||||
#include "boost/type_traits/remove_const.hpp"
|
|
||||||
#include "boost/type_traits/remove_reference.hpp"
|
|
||||||
|
|
||||||
#include "boost/indirect_reference.hpp"
|
#include "boost/indirect_reference.hpp"
|
||||||
#include "boost/detail/container_fwd.hpp"
|
#include "boost/detail/container_fwd.hpp"
|
||||||
@@ -542,6 +536,36 @@ struct return_type_2<bitwise_action<Act>, A, B>
|
|||||||
|
|
||||||
namespace detail {
|
namespace detail {
|
||||||
|
|
||||||
|
#ifdef BOOST_NO_TEMPLATED_STREAMS
|
||||||
|
|
||||||
|
template<class A, class B>
|
||||||
|
struct leftshift_type {
|
||||||
|
|
||||||
|
typedef typename detail::IF<
|
||||||
|
boost::is_convertible<
|
||||||
|
typename boost::remove_reference<A>::type*,
|
||||||
|
std::ostream*
|
||||||
|
>::value,
|
||||||
|
std::ostream&,
|
||||||
|
typename detail::remove_reference_and_cv<A>::type
|
||||||
|
>::RET type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<class A, class B>
|
||||||
|
struct rightshift_type {
|
||||||
|
|
||||||
|
typedef typename detail::IF<
|
||||||
|
|
||||||
|
boost::is_convertible<
|
||||||
|
typename boost::remove_reference<A>::type*,
|
||||||
|
std::istream*
|
||||||
|
>::value,
|
||||||
|
std::istream&,
|
||||||
|
typename detail::remove_reference_and_cv<A>::type
|
||||||
|
>::RET type;
|
||||||
|
};
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
template <class T> struct get_ostream_type {
|
template <class T> struct get_ostream_type {
|
||||||
typedef std::basic_ostream<typename T::char_type,
|
typedef std::basic_ostream<typename T::char_type,
|
||||||
@@ -578,6 +602,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
} // end detail
|
} // end detail
|
||||||
|
|
||||||
|
|||||||
@@ -161,6 +161,23 @@ namespace detail {
|
|||||||
|
|
||||||
// Note that the overloading is const vs. non-const first argument
|
// Note that the overloading is const vs. non-const first argument
|
||||||
|
|
||||||
|
#ifdef BOOST_NO_TEMPLATED_STREAMS
|
||||||
|
template<class T> struct convert_ostream_to_ref_others_to_c_plain_by_default {
|
||||||
|
typedef typename detail::IF<
|
||||||
|
boost::is_convertible<T*, std::ostream*>::value,
|
||||||
|
T&,
|
||||||
|
typename const_copy_argument <T>::type
|
||||||
|
>::RET type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<class T> struct convert_istream_to_ref_others_to_c_plain_by_default {
|
||||||
|
typedef typename detail::IF<
|
||||||
|
boost::is_convertible<T*, std::istream*>::value,
|
||||||
|
T&,
|
||||||
|
typename const_copy_argument <T>::type
|
||||||
|
>::RET type;
|
||||||
|
};
|
||||||
|
#else
|
||||||
|
|
||||||
template<class T> struct convert_ostream_to_ref_others_to_c_plain_by_default {
|
template<class T> struct convert_ostream_to_ref_others_to_c_plain_by_default {
|
||||||
typedef typename detail::IF<
|
typedef typename detail::IF<
|
||||||
@@ -181,6 +198,7 @@ template<class T> struct convert_istream_to_ref_others_to_c_plain_by_default {
|
|||||||
typename const_copy_argument <T>::type
|
typename const_copy_argument <T>::type
|
||||||
>::RET type;
|
>::RET type;
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
} // detail
|
} // detail
|
||||||
|
|
||||||
|
|||||||
@@ -284,7 +284,7 @@ inline const
|
|||||||
lambda_functor<
|
lambda_functor<
|
||||||
lambda_functor_base<do_nothing_action, null_type>
|
lambda_functor_base<do_nothing_action, null_type>
|
||||||
>
|
>
|
||||||
make_void(const Arg1&) {
|
make_void(const Arg1& a1) {
|
||||||
return
|
return
|
||||||
lambda_functor_base<do_nothing_action, null_type>();
|
lambda_functor_base<do_nothing_action, null_type>();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,10 @@
|
|||||||
namespace boost {
|
namespace boost {
|
||||||
namespace lambda {
|
namespace lambda {
|
||||||
|
|
||||||
|
using ::boost::type_traits::ice_and;
|
||||||
|
using ::boost::type_traits::ice_or;
|
||||||
|
using ::boost::type_traits::ice_not;
|
||||||
|
|
||||||
// Much of the type deduction code for standard arithmetic types
|
// Much of the type deduction code for standard arithmetic types
|
||||||
// from Gary Powell
|
// from Gary Powell
|
||||||
|
|
||||||
@@ -73,7 +77,8 @@ template <class Act, class A> struct return_type_1_prot {
|
|||||||
public:
|
public:
|
||||||
typedef typename
|
typedef typename
|
||||||
detail::IF<
|
detail::IF<
|
||||||
is_protectable<Act>::value && is_lambda_functor<A>::value,
|
// is_protectable<Act>::value && is_lambda_functor<A>::value,
|
||||||
|
ice_and<is_protectable<Act>::value, is_lambda_functor<A>::value>::value,
|
||||||
lambda_functor<
|
lambda_functor<
|
||||||
lambda_functor_base<
|
lambda_functor_base<
|
||||||
Act,
|
Act,
|
||||||
@@ -107,7 +112,9 @@ namespace detail {
|
|||||||
// add const to rvalues, so that all rvalues are stored as const in
|
// add const to rvalues, so that all rvalues are stored as const in
|
||||||
// the args tuple
|
// the args tuple
|
||||||
typedef typename detail::IF_type<
|
typedef typename detail::IF_type<
|
||||||
boost::is_reference<T>::value && !boost::is_const<non_ref_T>::value,
|
// boost::is_reference<T>::value && !boost::is_const<non_ref_T>::value,
|
||||||
|
ice_and<boost::is_reference<T>::value,
|
||||||
|
ice_not<boost::is_const<non_ref_T>::value>::value>::value,
|
||||||
detail::identity_mapping<T>,
|
detail::identity_mapping<T>,
|
||||||
const_copy_argument<non_ref_T> // handles funtion and array
|
const_copy_argument<non_ref_T> // handles funtion and array
|
||||||
>::type type; // types correctly
|
>::type type; // types correctly
|
||||||
@@ -141,8 +148,11 @@ template <class Act, class A, class B> struct return_type_2_prot {
|
|||||||
|
|
||||||
typedef typename
|
typedef typename
|
||||||
detail::IF<
|
detail::IF<
|
||||||
is_protectable<Act>::value &&
|
// is_protectable<Act>::value &&
|
||||||
(is_lambda_functor<A>::value || is_lambda_functor<B>::value),
|
// (is_lambda_functor<A>::value || is_lambda_functor<B>::value),
|
||||||
|
ice_and<is_protectable<Act>::value,
|
||||||
|
ice_or<is_lambda_functor<A>::value,
|
||||||
|
is_lambda_functor<B>::value>::value>::value,
|
||||||
lambda_functor<
|
lambda_functor<
|
||||||
lambda_functor_base<
|
lambda_functor_base<
|
||||||
Act,
|
Act,
|
||||||
@@ -177,8 +187,11 @@ struct return_type_2_comma
|
|||||||
|
|
||||||
typedef typename
|
typedef typename
|
||||||
detail::IF<
|
detail::IF<
|
||||||
is_protectable<other_action<comma_action> >::value && // it is protectable
|
// is_protectable<other_action<comma_action> >::value && // it is protectable
|
||||||
(is_lambda_functor<A>::value || is_lambda_functor<B>::value),
|
// (is_lambda_functor<A>::value || is_lambda_functor<B>::value),
|
||||||
|
ice_and<is_protectable<other_action<comma_action> >::value, // it is protectable
|
||||||
|
ice_or<is_lambda_functor<A>::value,
|
||||||
|
is_lambda_functor<B>::value>::value>::value,
|
||||||
lambda_functor<
|
lambda_functor<
|
||||||
lambda_functor_base<
|
lambda_functor_base<
|
||||||
other_action<comma_action>,
|
other_action<comma_action>,
|
||||||
|
|||||||
@@ -10,8 +10,8 @@
|
|||||||
|
|
||||||
// ------------------------------------------------------------
|
// ------------------------------------------------------------
|
||||||
|
|
||||||
#ifndef BOOST_LAMBDA_SUPPRESS_UNUSED_HPP
|
#ifndef BOOST_LAMBDA_SUPRESS_UNUSED_HPP
|
||||||
#define BOOST_LAMBDA_SUPPRESS_UNUSED_HPP
|
#define BOOST_LAMBDA_SUPRESS_UNUSED_HPP
|
||||||
|
|
||||||
namespace boost {
|
namespace boost {
|
||||||
namespace lambda {
|
namespace lambda {
|
||||||
|
|||||||
@@ -345,7 +345,7 @@ public:
|
|||||||
// is true, the true_statement (again an lambda_functor) is executed
|
// is true, the true_statement (again an lambda_functor) is executed
|
||||||
// otherwise, the false_statement (another lambda_functor) is executed. The
|
// otherwise, the false_statement (another lambda_functor) is executed. The
|
||||||
// result type of this is void. Note the trailing underscore after
|
// result type of this is void. Note the trailing underscore after
|
||||||
// if_ and the leading dot and the trailing underscore before
|
// if_ and the the leading dot and the trailing underscore before
|
||||||
// and after .else_.
|
// and after .else_.
|
||||||
//
|
//
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|||||||
@@ -24,6 +24,11 @@
|
|||||||
|
|
||||||
|
|
||||||
#include "boost/lambda/detail/operators.hpp"
|
#include "boost/lambda/detail/operators.hpp"
|
||||||
|
|
||||||
|
#ifndef BOOST_LAMBDA_FAILS_IN_TEMPLATE_KEYWORD_AFTER_SCOPE_OPER
|
||||||
|
// sorry, member ptr does not work with gcc2.95
|
||||||
#include "boost/lambda/detail/member_ptr.hpp"
|
#include "boost/lambda/detail/member_ptr.hpp"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -348,7 +348,7 @@ while_(CondT const& cond)
|
|||||||
// While the condition (an lambda_functor) evaluates to true, statement
|
// While the condition (an lambda_functor) evaluates to true, statement
|
||||||
// (another lambda_functor) is executed. The statement is executed at least
|
// (another lambda_functor) is executed. The statement is executed at least
|
||||||
// once. The result type of this is void. Note the trailing
|
// once. The result type of this is void. Note the trailing
|
||||||
// underscore after do_ and the leading dot and the trailing
|
// underscore after do_ and the the leading dot and the trailing
|
||||||
// underscore before and after .while_.
|
// underscore before and after .while_.
|
||||||
//
|
//
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"key": "lambda",
|
|
||||||
"name": "Lambda",
|
|
||||||
"authors": [
|
|
||||||
"Jaakko Järvi",
|
|
||||||
"Gary Powell"
|
|
||||||
],
|
|
||||||
"description": "Define small unnamed function objects at the actual call site, and more.",
|
|
||||||
"category": [
|
|
||||||
"Function-objects"
|
|
||||||
],
|
|
||||||
"maintainers": [
|
|
||||||
"Jaakko Jarvi <jarvi -at- cs.tamu.edu>"
|
|
||||||
],
|
|
||||||
"cxxstd": "03"
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
# 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 LINK_LIBRARIES Boost::lambda Boost::core Boost::any Boost::function Boost::smart_ptr)
|
|
||||||
|
|
||||||
endif()
|
|
||||||
53
test/Jamfile
53
test/Jamfile
@@ -1,36 +1,35 @@
|
|||||||
# Lambda library
|
# Lambda library
|
||||||
|
|
||||||
# Copyright (C) 2001-2003 Jaakko J<EFBFBD>rvi
|
# Copyright (C) 2001-2003 Jaakko Järvi
|
||||||
|
|
||||||
# Use, modification and distribution is subject to the Boost Software License,
|
# Use, modification and distribution is subject to the Boost Software License,
|
||||||
# Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
# Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
# http://www.boost.org/LICENSE_1_0.txt)
|
# http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
# For more information, see http://www.boost.org/
|
# For more information, see http://www.boost.org/
|
||||||
|
|
||||||
import testing ;
|
import testing ;
|
||||||
|
|
||||||
project : requirements <library>/boost/lambda//boost_lambda ;
|
project
|
||||||
|
: requirements <toolset>msvc:<asynch-exceptions>on
|
||||||
run algorithm_test.cpp ;
|
|
||||||
run bind_tests_advanced.cpp : : : <library>/boost/any//boost_any ;
|
|
||||||
run bind_tests_simple.cpp ;
|
|
||||||
run bind_tests_simple_f_refs.cpp ;
|
|
||||||
run bll_and_function.cpp ;
|
|
||||||
run cast_test.cpp ;
|
|
||||||
run constructor_tests.cpp ;
|
|
||||||
run control_structures.cpp ;
|
|
||||||
run exception_test.cpp
|
|
||||||
: : : <toolset>msvc-14.0,<variant>release:<build>no # crash with 8 catch blocks
|
|
||||||
;
|
;
|
||||||
run extending_rt_traits.cpp ;
|
|
||||||
run is_instance_of_test.cpp ;
|
test-suite lambda
|
||||||
run istreambuf_test.cpp ;
|
: [ run algorithm_test.cpp ]
|
||||||
run member_pointer_test.cpp ;
|
[ run bind_tests_simple.cpp ]
|
||||||
run operator_tests_simple.cpp ;
|
[ run bind_tests_advanced.cpp ]
|
||||||
run phoenix_control_structures.cpp ;
|
[ run bind_tests_simple_f_refs.cpp ]
|
||||||
run result_of_tests.cpp ;
|
[ run bll_and_function.cpp ]
|
||||||
run ret_test.cpp ;
|
[ run cast_test.cpp : : : : lambda_cast_test ]
|
||||||
run rvalue_test.cpp ;
|
[ run constructor_tests.cpp ]
|
||||||
run switch_construct.cpp ;
|
[ run control_structures.cpp ]
|
||||||
link issue24_test.cpp ;
|
[ run exception_test.cpp ]
|
||||||
|
[ run extending_rt_traits.cpp ]
|
||||||
|
[ run is_instance_of_test.cpp ]
|
||||||
|
[ run member_pointer_test.cpp ]
|
||||||
|
[ run operator_tests_simple.cpp ]
|
||||||
|
[ run phoenix_control_structures.cpp ]
|
||||||
|
[ run switch_construct.cpp ]
|
||||||
|
[ run result_of_tests.cpp ]
|
||||||
|
[ run ret_test.cpp ]
|
||||||
|
;
|
||||||
|
|||||||
@@ -11,8 +11,7 @@
|
|||||||
|
|
||||||
// test using BLL and boost::function
|
// test using BLL and boost::function
|
||||||
|
|
||||||
#include <boost/core/lightweight_test.hpp>
|
#include <boost/test/minimal.hpp> // see "Header Implementation Option"
|
||||||
#define BOOST_CHECK BOOST_TEST
|
|
||||||
|
|
||||||
#include "boost/lambda/lambda.hpp"
|
#include "boost/lambda/lambda.hpp"
|
||||||
#include "boost/lambda/bind.hpp"
|
#include "boost/lambda/bind.hpp"
|
||||||
@@ -47,9 +46,15 @@ void test_foreach() {
|
|||||||
|
|
||||||
// More tests needed (for all algorithms)
|
// More tests needed (for all algorithms)
|
||||||
|
|
||||||
int main() {
|
int test_main(int, char *[]) {
|
||||||
|
|
||||||
test_foreach();
|
test_foreach();
|
||||||
|
|
||||||
return boost::report_errors();
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -13,8 +13,7 @@
|
|||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
#include <boost/core/lightweight_test.hpp>
|
#include <boost/test/minimal.hpp> // see "Header Implementation Option"
|
||||||
#define BOOST_CHECK BOOST_TEST
|
|
||||||
|
|
||||||
#include "boost/lambda/lambda.hpp"
|
#include "boost/lambda/lambda.hpp"
|
||||||
#include "boost/lambda/bind.hpp"
|
#include "boost/lambda/bind.hpp"
|
||||||
@@ -122,37 +121,11 @@ void test_unlambda() {
|
|||||||
|
|
||||||
BOOST_CHECK(call_with_101(_1 + 1) == 102);
|
BOOST_CHECK(call_with_101(_1 + 1) == 102);
|
||||||
|
|
||||||
#if defined(BOOST_NO_CXX11_HDR_FUNCTIONAL)
|
|
||||||
|
|
||||||
BOOST_CHECK(call_with_100(bl::bind(std_functor(std::bind1st(std::plus<int>(), 1)), _1)) == 101);
|
BOOST_CHECK(call_with_100(bl::bind(std_functor(std::bind1st(std::plus<int>(), 1)), _1)) == 101);
|
||||||
|
|
||||||
#elif BOOST_CXX_VERSION > 201703L
|
|
||||||
|
|
||||||
// In C++20, standard functors no longer have ::result_type
|
|
||||||
BOOST_CHECK(call_with_100(bl::bind(std::bind(std::plus<int>(), 1, std::placeholders::_1), _1)) == 101);
|
|
||||||
|
|
||||||
#elif defined(BOOST_MSVC) && BOOST_MSVC < 1900
|
|
||||||
|
|
||||||
// Mysterious failures under msvc-12.0 and below
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
BOOST_CHECK(call_with_100(bl::bind(std_functor(std::bind(std::plus<int>(), 1, std::placeholders::_1)), _1)) == 101);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if BOOST_CXX_VERSION <= 201703L
|
|
||||||
|
|
||||||
// std_functor insturcts LL that the functor defines a result_type typedef
|
// std_functor insturcts LL that the functor defines a result_type typedef
|
||||||
// rather than a sig template.
|
// rather than a sig template.
|
||||||
bl::bind(std_functor(std::plus<int>()), _1, _2)(i, i);
|
bl::bind(std_functor(std::plus<int>()), _1, _2)(i, i);
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
// In C++20, standard functors no longer have ::result_type
|
|
||||||
bl::bind(std::plus<int>(), _1, _2)(i, i);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -432,7 +405,7 @@ void test_abstract()
|
|||||||
BOOST_CHECK(bind(&base::foo, *_1)(&b) == 1);
|
BOOST_CHECK(bind(&base::foo, *_1)(&b) == 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() {
|
int test_main(int, char *[]) {
|
||||||
|
|
||||||
test_nested_binds();
|
test_nested_binds();
|
||||||
test_unlambda();
|
test_unlambda();
|
||||||
@@ -443,5 +416,5 @@ int main() {
|
|||||||
test_break_const();
|
test_break_const();
|
||||||
test_sig();
|
test_sig();
|
||||||
test_abstract();
|
test_abstract();
|
||||||
return boost::report_errors();
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,8 +12,7 @@
|
|||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
#include <boost/core/lightweight_test.hpp>
|
#include <boost/test/minimal.hpp> // see "Header Implementation Option"
|
||||||
#define BOOST_CHECK BOOST_TEST
|
|
||||||
|
|
||||||
#include "boost/lambda/bind.hpp"
|
#include "boost/lambda/bind.hpp"
|
||||||
|
|
||||||
@@ -98,7 +97,7 @@ void test_data_members()
|
|||||||
BOOST_CHECK(b.i == 1);
|
BOOST_CHECK(b.i == 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() {
|
int test_main(int, char *[]) {
|
||||||
|
|
||||||
int i = 1; int j = 2; int k = 3;
|
int i = 1; int j = 2; int k = 3;
|
||||||
int result;
|
int result;
|
||||||
@@ -184,5 +183,5 @@ int main() {
|
|||||||
test_member_functions();
|
test_member_functions();
|
||||||
|
|
||||||
|
|
||||||
return boost::report_errors();
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,8 +12,7 @@
|
|||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
#include <boost/core/lightweight_test.hpp>
|
#include <boost/test/minimal.hpp> // see "Header Implementation Option"
|
||||||
#define BOOST_CHECK BOOST_TEST
|
|
||||||
|
|
||||||
#include "boost/lambda/bind.hpp"
|
#include "boost/lambda/bind.hpp"
|
||||||
|
|
||||||
@@ -58,7 +57,7 @@ void test_member_functions()
|
|||||||
// bind(&A::add, a, _1);
|
// bind(&A::add, a, _1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() {
|
int test_main(int, char *[]) {
|
||||||
|
|
||||||
int i = 1; int j = 2; int k = 3;
|
int i = 1; int j = 2; int k = 3;
|
||||||
int result;
|
int result;
|
||||||
@@ -145,5 +144,5 @@ int main() {
|
|||||||
test_member_functions();
|
test_member_functions();
|
||||||
|
|
||||||
|
|
||||||
return boost::report_errors();
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,8 +11,7 @@
|
|||||||
|
|
||||||
// test using BLL and boost::function
|
// test using BLL and boost::function
|
||||||
|
|
||||||
#include <boost/core/lightweight_test.hpp>
|
#include <boost/test/minimal.hpp> // see "Header Implementation Option"
|
||||||
#define BOOST_CHECK BOOST_TEST
|
|
||||||
|
|
||||||
#include "boost/lambda/lambda.hpp"
|
#include "boost/lambda/lambda.hpp"
|
||||||
|
|
||||||
@@ -55,9 +54,15 @@ void test_function() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int main() {
|
int test_main(int, char *[]) {
|
||||||
|
|
||||||
test_function();
|
test_function();
|
||||||
|
|
||||||
return boost::report_errors();
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -12,8 +12,7 @@
|
|||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
#include <boost/core/lightweight_test.hpp>
|
#include <boost/test/minimal.hpp> // see "Header Implementation Option"
|
||||||
#define BOOST_CHECK BOOST_TEST
|
|
||||||
|
|
||||||
|
|
||||||
#include "boost/lambda/lambda.hpp"
|
#include "boost/lambda/lambda.hpp"
|
||||||
@@ -101,8 +100,8 @@ void do_test() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() {
|
int test_main(int, char *[]) {
|
||||||
|
|
||||||
do_test();
|
do_test();
|
||||||
return boost::report_errors();
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
# 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
|
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.5...3.16)
|
|
||||||
|
|
||||||
project(cmake_install_test LANGUAGES CXX)
|
|
||||||
|
|
||||||
find_package(boost_lambda REQUIRED)
|
|
||||||
find_package(boost_core REQUIRED)
|
|
||||||
|
|
||||||
add_executable(quick ../quick.cpp)
|
|
||||||
target_link_libraries(quick Boost::lambda Boost::core)
|
|
||||||
|
|
||||||
enable_testing()
|
|
||||||
add_test(quick quick)
|
|
||||||
|
|
||||||
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
# Copyright 2018, 2019, 2021 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)
|
|
||||||
|
|
||||||
set(BOOST_INCLUDE_LIBRARIES lambda)
|
|
||||||
|
|
||||||
add_subdirectory(../../../../ deps/boost)
|
|
||||||
|
|
||||||
# --target check
|
|
||||||
|
|
||||||
add_executable(quick ../quick.cpp)
|
|
||||||
target_link_libraries(quick Boost::lambda Boost::core)
|
|
||||||
|
|
||||||
enable_testing()
|
|
||||||
add_test(quick quick)
|
|
||||||
|
|
||||||
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
|
|
||||||
@@ -12,8 +12,7 @@
|
|||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
#include <boost/core/lightweight_test.hpp>
|
#include <boost/test/minimal.hpp> // see "Header Implementation Option"
|
||||||
#define BOOST_CHECK BOOST_TEST
|
|
||||||
|
|
||||||
|
|
||||||
#include "boost/lambda/lambda.hpp"
|
#include "boost/lambda/lambda.hpp"
|
||||||
@@ -253,7 +252,7 @@ void delayed_construction()
|
|||||||
bl::bind(constructor<std::pair<int, int> >(), _1, _2) );
|
bl::bind(constructor<std::pair<int, int> >(), _1, _2) );
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() {
|
int test_main(int, char *[]) {
|
||||||
|
|
||||||
constructor_all_lengths();
|
constructor_all_lengths();
|
||||||
new_ptr_all_lengths();
|
new_ptr_all_lengths();
|
||||||
@@ -262,5 +261,5 @@ int main() {
|
|||||||
test_news_and_deletes();
|
test_news_and_deletes();
|
||||||
test_array_new_and_delete();
|
test_array_new_and_delete();
|
||||||
|
|
||||||
return boost::report_errors();
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,8 +11,7 @@
|
|||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
#include <boost/core/lightweight_test.hpp>
|
#include <boost/test/minimal.hpp> // see "Header Implementation Option"
|
||||||
#define BOOST_CHECK BOOST_TEST
|
|
||||||
|
|
||||||
#include "boost/lambda/lambda.hpp"
|
#include "boost/lambda/lambda.hpp"
|
||||||
#include "boost/lambda/if.hpp"
|
#include "boost/lambda/if.hpp"
|
||||||
@@ -116,9 +115,9 @@ void simple_ifs () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int main()
|
int test_main(int, char *[])
|
||||||
{
|
{
|
||||||
simple_loops();
|
simple_loops();
|
||||||
simple_ifs();
|
simple_ifs();
|
||||||
return boost::report_errors();
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,8 +11,7 @@
|
|||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
#include <boost/core/lightweight_test.hpp>
|
#include <boost/test/minimal.hpp> // see "Header Implementation Option"
|
||||||
#define BOOST_CHECK BOOST_TEST
|
|
||||||
|
|
||||||
#include "boost/lambda/lambda.hpp"
|
#include "boost/lambda/lambda.hpp"
|
||||||
|
|
||||||
@@ -596,7 +595,7 @@ void return_type_matching() {
|
|||||||
BOOST_CHECK(a == 'b');
|
BOOST_CHECK(a == 'b');
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() {
|
int test_main(int, char *[]) {
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -614,5 +613,9 @@ int main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return boost::report_errors();
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -12,8 +12,7 @@
|
|||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
#include <boost/core/lightweight_test.hpp>
|
#include <boost/test/minimal.hpp> // see "Header Implementation Option"
|
||||||
#define BOOST_CHECK BOOST_TEST
|
|
||||||
|
|
||||||
#include "boost/lambda/bind.hpp"
|
#include "boost/lambda/bind.hpp"
|
||||||
#include "boost/lambda/lambda.hpp"
|
#include "boost/lambda/lambda.hpp"
|
||||||
@@ -382,8 +381,14 @@ void test_binary_operators() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int main() {
|
int test_main(int, char *[]) {
|
||||||
test_unary_operators();
|
test_unary_operators();
|
||||||
test_binary_operators();
|
test_binary_operators();
|
||||||
return boost::report_errors();
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -12,8 +12,7 @@
|
|||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
#include <boost/core/lightweight_test.hpp>
|
#include <boost/test/minimal.hpp> // see "Header Implementation Option"
|
||||||
#define BOOST_CHECK BOOST_TEST
|
|
||||||
|
|
||||||
|
|
||||||
#include "boost/lambda/detail/is_instance_of.hpp"
|
#include "boost/lambda/detail/is_instance_of.hpp"
|
||||||
@@ -46,7 +45,7 @@ template <bool b> class X {};
|
|||||||
X<boost::lambda::is_instance_of_2<int, A2>::value> x;
|
X<boost::lambda::is_instance_of_2<int, A2>::value> x;
|
||||||
|
|
||||||
|
|
||||||
int main() {
|
int test_main(int, char *[]) {
|
||||||
|
|
||||||
using boost::lambda::is_instance_of_1;
|
using boost::lambda::is_instance_of_1;
|
||||||
using boost::lambda::is_instance_of_2;
|
using boost::lambda::is_instance_of_2;
|
||||||
@@ -74,6 +73,7 @@ BOOST_CHECK((is_instance_of_4<A4<int, float, char, double>, A4>::value == true))
|
|||||||
BOOST_CHECK((is_instance_of_4<int, A4>::value == false));
|
BOOST_CHECK((is_instance_of_4<int, A4>::value == false));
|
||||||
BOOST_CHECK((is_instance_of_4<C4, A4>::value == false));
|
BOOST_CHECK((is_instance_of_4<C4, A4>::value == false));
|
||||||
|
|
||||||
return boost::report_errors();
|
return 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
// Copyright 2021 Peter Dimov
|
|
||||||
// Distributed under the Boost Software License, Version 1.0.
|
|
||||||
// https://www.boost.org/LICENSE_1_0.txt
|
|
||||||
|
|
||||||
#include <boost/lambda/bind.hpp>
|
|
||||||
#include <boost/config.hpp>
|
|
||||||
#include <functional>
|
|
||||||
|
|
||||||
#if defined(BOOST_NO_CXX11_HDR_FUNCTIONAL)
|
|
||||||
|
|
||||||
#include <boost/config/pragma_message.hpp>
|
|
||||||
BOOST_PRAGMA_MESSAGE( "Skipping test because BOOST_NO_CXX11_HDR_FUNCTIONAL is defined" )
|
|
||||||
int main() {}
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
void func()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
std::function<void()>( boost::lambda::bind( func ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
// http://www.boost.org/LICENSE_1_0.txt
|
// http://www.boost.org/LICENSE_1_0.txt
|
||||||
|
|
||||||
#include <boost/lambda/lambda.hpp>
|
#include <boost/lambda/lambda.hpp>
|
||||||
#include <boost/core/lightweight_test.hpp>
|
#include <boost/detail/lightweight_test.hpp>
|
||||||
#include <iterator>
|
#include <iterator>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|||||||
@@ -12,8 +12,7 @@
|
|||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
#include <boost/core/lightweight_test.hpp>
|
#include <boost/test/minimal.hpp> // see "Header Implementation Option"
|
||||||
#define BOOST_CHECK BOOST_TEST
|
|
||||||
|
|
||||||
|
|
||||||
#include "boost/lambda/lambda.hpp"
|
#include "boost/lambda/lambda.hpp"
|
||||||
@@ -183,10 +182,11 @@ void test_overloaded_pointer_to_member()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int main() {
|
int test_main(int, char *[]) {
|
||||||
|
|
||||||
pointer_to_data_member_tests();
|
pointer_to_data_member_tests();
|
||||||
pointer_to_member_function_tests();
|
pointer_to_member_function_tests();
|
||||||
test_overloaded_pointer_to_member();
|
test_overloaded_pointer_to_member();
|
||||||
return boost::report_errors();
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,8 +13,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include <boost/core/lightweight_test.hpp>
|
#include <boost/test/minimal.hpp> // see "Header Implementation Option"
|
||||||
#define BOOST_CHECK BOOST_TEST
|
|
||||||
|
|
||||||
#include "boost/lambda/lambda.hpp"
|
#include "boost/lambda/lambda.hpp"
|
||||||
|
|
||||||
@@ -409,7 +408,7 @@ void pointer_arithmetic() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() {
|
int test_main(int, char *[]) {
|
||||||
|
|
||||||
arithmetic_operators();
|
arithmetic_operators();
|
||||||
bitwise_operators();
|
bitwise_operators();
|
||||||
@@ -422,5 +421,11 @@ int main() {
|
|||||||
comma();
|
comma();
|
||||||
pointer_arithmetic();
|
pointer_arithmetic();
|
||||||
cout_tests();
|
cout_tests();
|
||||||
return boost::report_errors();
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -12,8 +12,7 @@
|
|||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
#include <boost/core/lightweight_test.hpp>
|
#include <boost/test/minimal.hpp> // see "Header Implementation Option"
|
||||||
#define BOOST_CHECK BOOST_TEST
|
|
||||||
|
|
||||||
#include "boost/lambda/lambda.hpp"
|
#include "boost/lambda/lambda.hpp"
|
||||||
#include "boost/lambda/if.hpp"
|
#include "boost/lambda/if.hpp"
|
||||||
@@ -37,7 +36,7 @@ using namespace std;
|
|||||||
// If-else, while, do-while, for statements
|
// If-else, while, do-while, for statements
|
||||||
|
|
||||||
|
|
||||||
int main() {
|
int test_main(int, char *[]) {
|
||||||
|
|
||||||
vector<int> v;
|
vector<int> v;
|
||||||
v.clear();
|
v.clear();
|
||||||
@@ -144,5 +143,6 @@ int main() {
|
|||||||
|
|
||||||
v = t;
|
v = t;
|
||||||
|
|
||||||
return boost::report_errors();
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
// Copyright 2021 Peter Dimov
|
|
||||||
// Distributed under the Boost Software License, Version 1.0.
|
|
||||||
// https://www.boost.org/LICENSE_1_0.txt
|
|
||||||
|
|
||||||
#include <boost/lambda/lambda.hpp>
|
|
||||||
#include <boost/core/lightweight_test.hpp>
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
using namespace boost::lambda;
|
|
||||||
|
|
||||||
BOOST_TEST_EQ( (_1 + _2)(1, 2), 3 );
|
|
||||||
|
|
||||||
return boost::report_errors();
|
|
||||||
}
|
|
||||||
@@ -11,9 +11,7 @@
|
|||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
#include <boost/core/lightweight_test.hpp>
|
#include <boost/test/minimal.hpp> // see "Header Implementation Option"
|
||||||
#define BOOST_CHECK BOOST_TEST
|
|
||||||
|
|
||||||
#include <boost/lambda/bind.hpp>
|
#include <boost/lambda/bind.hpp>
|
||||||
#include <boost/lambda/lambda.hpp>
|
#include <boost/lambda/lambda.hpp>
|
||||||
#include <boost/mpl/assert.hpp>
|
#include <boost/mpl/assert.hpp>
|
||||||
@@ -254,7 +252,7 @@ typename boost::result_of<F(A, B, C)>::type apply3(F f, A a, B b, C c) {
|
|||||||
|
|
||||||
using namespace boost::lambda;
|
using namespace boost::lambda;
|
||||||
|
|
||||||
int main() {
|
int test_main(int, char *[]) {
|
||||||
BOOST_CHECK(boost::lambda::bind(with_result_type())() == 0);
|
BOOST_CHECK(boost::lambda::bind(with_result_type())() == 0);
|
||||||
BOOST_CHECK(boost::lambda::bind(with_result_type(), 1)() == 1);
|
BOOST_CHECK(boost::lambda::bind(with_result_type(), 1)() == 1);
|
||||||
BOOST_CHECK(boost::lambda::bind(with_result_type(), 1, 2)() == 2);
|
BOOST_CHECK(boost::lambda::bind(with_result_type(), 1, 2)() == 2);
|
||||||
@@ -301,9 +299,8 @@ int main() {
|
|||||||
BOOST_CHECK(boost::lambda::bind(with_result_template_reference(), var(one), var(two), var(three), var(four), var(five), var(six), var(seven), var(eight), var(nine))() == 9);
|
BOOST_CHECK(boost::lambda::bind(with_result_template_reference(), var(one), var(two), var(three), var(four), var(five), var(six), var(seven), var(eight), var(nine))() == 9);
|
||||||
|
|
||||||
// Check using result_of with lambda functors
|
// Check using result_of with lambda functors
|
||||||
BOOST_CHECK(apply0(constant(0)) == 0);
|
//BOOST_CHECK(apply0(constant(0)) == 0);
|
||||||
// returns local address and leads to undefined behavior
|
BOOST_CHECK(apply1<int>(_1, one) == 1);
|
||||||
//~ BOOST_CHECK(apply1<int>(_1, one) == 1);
|
|
||||||
BOOST_CHECK(apply1<int&>(_1, one) == 1);
|
BOOST_CHECK(apply1<int&>(_1, one) == 1);
|
||||||
BOOST_CHECK(apply1<const int&>(_1, one) == 1);
|
BOOST_CHECK(apply1<const int&>(_1, one) == 1);
|
||||||
BOOST_CHECK((apply2<int, int>(_1 + _2, one, two) == 3));
|
BOOST_CHECK((apply2<int, int>(_1 + _2, one, two) == 3));
|
||||||
@@ -313,5 +310,5 @@ int main() {
|
|||||||
BOOST_CHECK((apply3<int&, int&, int&>(_1 + _2 + _3, one, two, three) == 6));
|
BOOST_CHECK((apply3<int&, int&, int&>(_1 + _2 + _3, one, two, three) == 6));
|
||||||
BOOST_CHECK((apply3<const int&, const int&, const int&>(_1 + _2 + _3, one, two, three) == 6));
|
BOOST_CHECK((apply3<const int&, const int&, const int&>(_1 + _2 + _3, one, two, three) == 6));
|
||||||
|
|
||||||
return boost::report_errors();
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,8 +8,7 @@
|
|||||||
//
|
//
|
||||||
// For more information, see www.boost.org
|
// For more information, see www.boost.org
|
||||||
|
|
||||||
#include <boost/core/lightweight_test.hpp>
|
#include <boost/test/minimal.hpp>
|
||||||
#define BOOST_CHECK BOOST_TEST
|
|
||||||
|
|
||||||
#include <boost/lambda/lambda.hpp>
|
#include <boost/lambda/lambda.hpp>
|
||||||
|
|
||||||
@@ -45,10 +44,10 @@ add_result operator+(addable, addable) {
|
|||||||
return add_result(7);
|
return add_result(7);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() {
|
int test_main(int, char*[]) {
|
||||||
addable test;
|
addable test;
|
||||||
test_ret(add_result(7), boost::lambda::ret<add_result>(boost::lambda::_1 + test), test);
|
test_ret(add_result(7), boost::lambda::ret<add_result>(boost::lambda::_1 + test), test);
|
||||||
test_ret(8.0, boost::lambda::ret<double>(boost::lambda::constant(7) + 1));
|
test_ret(8.0, boost::lambda::ret<double>(boost::lambda::constant(7) + 1));
|
||||||
|
|
||||||
return boost::report_errors();
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
// http://www.boost.org/LICENSE_1_0.txt
|
// http://www.boost.org/LICENSE_1_0.txt
|
||||||
|
|
||||||
#include <boost/lambda/lambda.hpp>
|
#include <boost/lambda/lambda.hpp>
|
||||||
#include <boost/core/lightweight_test.hpp>
|
#include <boost/detail/lightweight_test.hpp>
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -12,8 +12,7 @@
|
|||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
#include <boost/core/lightweight_test.hpp>
|
#include <boost/test/minimal.hpp> // see "Header Implementation Option"
|
||||||
#define BOOST_CHECK BOOST_TEST
|
|
||||||
|
|
||||||
|
|
||||||
#include "boost/lambda/lambda.hpp"
|
#include "boost/lambda/lambda.hpp"
|
||||||
@@ -380,13 +379,14 @@ void test_empty_cases() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() {
|
int test_main(int, char* []) {
|
||||||
|
|
||||||
do_switch_no_defaults_tests();
|
do_switch_no_defaults_tests();
|
||||||
do_switch_yes_defaults_tests();
|
do_switch_yes_defaults_tests();
|
||||||
|
|
||||||
test_empty_cases();
|
test_empty_cases();
|
||||||
|
|
||||||
return boost::report_errors();
|
return EXIT_SUCCESS;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user