mirror of
https://github.com/boostorg/bind.git
synced 2026-04-13 21:25:59 +02:00
Compare commits
32 Commits
boost-1.85
...
develop
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8cc29fc19d | ||
|
|
ef788bb6e2 | ||
|
|
6b861090ba | ||
|
|
e4b7954bf6 | ||
|
|
cd65e603a1 | ||
|
|
f6abee248f | ||
|
|
90caab61f2 | ||
|
|
a541a8d5c1 | ||
|
|
e027093c53 | ||
|
|
fac72450f2 | ||
|
|
ac4c6f7c7a | ||
|
|
6d11c8931c | ||
|
|
71393b0d28 | ||
|
|
68a9e0db85 | ||
|
|
96e8802169 | ||
|
|
620ddec3ee | ||
|
|
0e7a2373c1 | ||
|
|
5af56ff9f8 | ||
|
|
a902503477 | ||
|
|
c72cc6f914 | ||
|
|
0de59ef498 | ||
|
|
97776ec7ba | ||
|
|
76c1733f47 | ||
|
|
769479a964 | ||
|
|
cb724dcf57 | ||
|
|
b7edec7300 | ||
|
|
8729fbdbfa | ||
|
|
bdc7a9cfc5 | ||
|
|
2e0c546d64 | ||
|
|
c1bdcd3e9b | ||
|
|
da830bc0eb | ||
|
|
e18818ec06 |
@@ -32,7 +32,8 @@ local linux_pipeline(name, image, environment, packages = "", sources = [], arch
|
||||
commands:
|
||||
[
|
||||
'set -e',
|
||||
'wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -',
|
||||
'uname -a',
|
||||
'echo $DRONE_STAGE_MACHINE',
|
||||
] +
|
||||
(if sources != [] then [ ('apt-add-repository "' + source + '"') for source in sources ] else []) +
|
||||
(if packages != "" then [ 'apt-get update', 'apt-get -y install ' + packages ] else []) +
|
||||
@@ -184,33 +185,54 @@ local windows_pipeline(name, image, environment, arch = "amd64") =
|
||||
),
|
||||
|
||||
linux_pipeline(
|
||||
"Linux 23.04 GCC 13 32 ASAN",
|
||||
"cppalliance/droneubuntu2304:1",
|
||||
"Linux 24.04 GCC 13 32 ASAN",
|
||||
"cppalliance/droneubuntu2404:1",
|
||||
{ TOOLSET: 'gcc', COMPILER: 'g++-13', CXXSTD: '11,14,17,20,2b', ADDRMD: '32' } + asan,
|
||||
"g++-13-multilib",
|
||||
),
|
||||
|
||||
linux_pipeline(
|
||||
"Linux 23.04 GCC 13 64 ASAN",
|
||||
"cppalliance/droneubuntu2304:1",
|
||||
{ TOOLSET: 'gcc', COMPILER: 'g++-13', CXXSTD: '11,14,17,20,2b', ADDRMD: '64' } + asan,
|
||||
"g++-13-multilib",
|
||||
),
|
||||
|
||||
linux_pipeline(
|
||||
"Linux 23.04 GCC 13 32 UBSAN",
|
||||
"cppalliance/droneubuntu2304:1",
|
||||
"Linux 24.04 GCC 13 32 UBSAN",
|
||||
"cppalliance/droneubuntu2404:1",
|
||||
{ TOOLSET: 'gcc', COMPILER: 'g++-13', CXXSTD: '11,14,17,20,2b', ADDRMD: '32' } + ubsan,
|
||||
"g++-13-multilib",
|
||||
),
|
||||
|
||||
linux_pipeline(
|
||||
"Linux 23.04 GCC 13 64 UBSAN",
|
||||
"cppalliance/droneubuntu2304:1",
|
||||
"Linux 24.04 GCC 13 64 UBSAN",
|
||||
"cppalliance/droneubuntu2404:1",
|
||||
{ TOOLSET: 'gcc', COMPILER: 'g++-13', CXXSTD: '11,14,17,20,2b', ADDRMD: '64' } + ubsan,
|
||||
"g++-13-multilib",
|
||||
),
|
||||
|
||||
linux_pipeline(
|
||||
"Linux 24.04 GCC 14 32 ASAN",
|
||||
"cppalliance/droneubuntu2404:1",
|
||||
{ TOOLSET: 'gcc', COMPILER: 'g++-14', CXXSTD: '11,14,17,20,2b', ADDRMD: '32' } + asan,
|
||||
"g++-14-multilib",
|
||||
),
|
||||
|
||||
linux_pipeline(
|
||||
"Linux 24.04 GCC 14 64 ASAN",
|
||||
"cppalliance/droneubuntu2404:1",
|
||||
{ TOOLSET: 'gcc', COMPILER: 'g++-14', CXXSTD: '11,14,17,20,2b', ADDRMD: '64' } + asan,
|
||||
"g++-14-multilib",
|
||||
),
|
||||
|
||||
linux_pipeline(
|
||||
"Linux 24.04 GCC 14 32 UBSAN",
|
||||
"cppalliance/droneubuntu2404:1",
|
||||
{ TOOLSET: 'gcc', COMPILER: 'g++-14', CXXSTD: '11,14,17,20,2b', ADDRMD: '32' } + ubsan,
|
||||
"g++-14-multilib",
|
||||
),
|
||||
|
||||
linux_pipeline(
|
||||
"Linux 24.04 GCC 14 64 UBSAN",
|
||||
"cppalliance/droneubuntu2404:1",
|
||||
{ TOOLSET: 'gcc', COMPILER: 'g++-14', CXXSTD: '11,14,17,20,2b', ADDRMD: '64' } + ubsan,
|
||||
"g++-14-multilib",
|
||||
),
|
||||
|
||||
linux_pipeline(
|
||||
"Linux 16.04 Clang 3.5",
|
||||
"cppalliance/droneubuntu1604:1",
|
||||
@@ -261,26 +283,54 @@ local windows_pipeline(name, image, environment, arch = "amd64") =
|
||||
),
|
||||
|
||||
linux_pipeline(
|
||||
"Linux 23.04 Clang 16",
|
||||
"cppalliance/droneubuntu2304:1",
|
||||
"Linux 24.04 Clang 16",
|
||||
"cppalliance/droneubuntu2404:1",
|
||||
{ TOOLSET: 'clang', COMPILER: 'clang++-16', CXXSTD: '11,14,17,20,2b' },
|
||||
"clang-16",
|
||||
),
|
||||
|
||||
linux_pipeline(
|
||||
"Linux 23.10 Clang 17 UBSAN",
|
||||
"cppalliance/droneubuntu2310:1",
|
||||
"Linux 24.04 Clang 17 UBSAN",
|
||||
"cppalliance/droneubuntu2404:1",
|
||||
{ TOOLSET: 'clang', COMPILER: 'clang++-17', CXXSTD: '11,14,17,20,2b' } + ubsan,
|
||||
"clang-17",
|
||||
),
|
||||
|
||||
linux_pipeline(
|
||||
"Linux 23.10 Clang 17 ASAN",
|
||||
"cppalliance/droneubuntu2310:1",
|
||||
"Linux 24.04 Clang 17 ASAN",
|
||||
"cppalliance/droneubuntu2404:1",
|
||||
{ TOOLSET: 'clang', COMPILER: 'clang++-17', CXXSTD: '11,14,17,20,2b' } + asan,
|
||||
"clang-17",
|
||||
),
|
||||
|
||||
linux_pipeline(
|
||||
"Linux 24.04 Clang 18 UBSAN",
|
||||
"cppalliance/droneubuntu2404:1",
|
||||
{ TOOLSET: 'clang', COMPILER: 'clang++-18', CXXSTD: '11,14,17,20,2b' } + ubsan,
|
||||
"clang-18",
|
||||
),
|
||||
|
||||
linux_pipeline(
|
||||
"Linux 24.04 Clang 18 ASAN",
|
||||
"cppalliance/droneubuntu2404:1",
|
||||
{ TOOLSET: 'clang', COMPILER: 'clang++-18', CXXSTD: '11,14,17,20,2b' } + asan,
|
||||
"clang-18",
|
||||
),
|
||||
|
||||
linux_pipeline(
|
||||
"Linux 24.04 Clang 19",
|
||||
"cppalliance/droneubuntu2404:1",
|
||||
{ TOOLSET: 'clang', COMPILER: 'clang++-19', CXXSTD: '11,14,17,20,2b' },
|
||||
"clang-19",
|
||||
),
|
||||
|
||||
linux_pipeline(
|
||||
"Linux 24.04 Clang 20",
|
||||
"cppalliance/droneubuntu2404:1",
|
||||
{ TOOLSET: 'clang', COMPILER: 'clang++-20', CXXSTD: '11,14,17,20,23,2c' },
|
||||
"clang-20",
|
||||
),
|
||||
|
||||
macos_pipeline(
|
||||
"MacOS 10.15 Xcode 12.2 UBSAN",
|
||||
{ TOOLSET: 'clang', COMPILER: 'clang++', CXXSTD: '11,14,1z' } + ubsan,
|
||||
@@ -326,4 +376,10 @@ local windows_pipeline(name, image, environment, arch = "amd64") =
|
||||
"cppalliance/dronevs2022:1",
|
||||
{ TOOLSET: 'msvc-14.3', CXXSTD: '14,17,20,latest' },
|
||||
),
|
||||
|
||||
windows_pipeline(
|
||||
"Windows VS2026 msvc-14.5",
|
||||
"cppalliance/dronevs2026:1",
|
||||
{ TOOLSET: 'msvc-14.5', CXXSTD: '14,17,20,latest' },
|
||||
),
|
||||
]
|
||||
|
||||
149
.github/workflows/ci.yml
vendored
149
.github/workflows/ci.yml
vendored
@@ -34,32 +34,40 @@ jobs:
|
||||
install: g++-6
|
||||
- toolset: gcc-7
|
||||
cxxstd: "11,14,17"
|
||||
os: ubuntu-20.04
|
||||
container: ubuntu:20.04
|
||||
os: ubuntu-latest
|
||||
install: g++-7
|
||||
- toolset: gcc-8
|
||||
cxxstd: "11,14,17,2a"
|
||||
os: ubuntu-20.04
|
||||
container: ubuntu:20.04
|
||||
os: ubuntu-latest
|
||||
install: g++-8
|
||||
- toolset: gcc-9
|
||||
cxxstd: "11,14,17,2a"
|
||||
os: ubuntu-20.04
|
||||
container: ubuntu:20.04
|
||||
os: ubuntu-latest
|
||||
- toolset: gcc-10
|
||||
cxxstd: "11,14,17,2a"
|
||||
os: ubuntu-20.04
|
||||
container: ubuntu:20.04
|
||||
os: ubuntu-latest
|
||||
install: g++-10
|
||||
- toolset: gcc-11
|
||||
cxxstd: "11,14,17,2a"
|
||||
os: ubuntu-20.04
|
||||
install: g++-11
|
||||
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:23.04
|
||||
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"
|
||||
@@ -81,37 +89,44 @@ jobs:
|
||||
- toolset: clang
|
||||
compiler: clang++-6.0
|
||||
cxxstd: "11,14,17"
|
||||
os: ubuntu-20.04
|
||||
container: ubuntu:20.04
|
||||
os: ubuntu-latest
|
||||
install: clang-6.0
|
||||
- toolset: clang
|
||||
compiler: clang++-7
|
||||
cxxstd: "11,14,17"
|
||||
os: ubuntu-20.04
|
||||
container: ubuntu:20.04
|
||||
os: ubuntu-latest
|
||||
install: clang-7
|
||||
- toolset: clang
|
||||
compiler: clang++-8
|
||||
cxxstd: "11,14,17"
|
||||
os: ubuntu-20.04
|
||||
container: ubuntu:20.04
|
||||
os: ubuntu-latest
|
||||
install: clang-8
|
||||
- toolset: clang
|
||||
compiler: clang++-9
|
||||
cxxstd: "11,14,17,2a"
|
||||
os: ubuntu-20.04
|
||||
container: ubuntu:20.04
|
||||
os: ubuntu-latest
|
||||
install: clang-9
|
||||
- toolset: clang
|
||||
compiler: clang++-10
|
||||
cxxstd: "11,14,17,2a"
|
||||
os: ubuntu-20.04
|
||||
container: ubuntu:20.04
|
||||
os: ubuntu-latest
|
||||
install: clang-10
|
||||
- toolset: clang
|
||||
compiler: clang++-11
|
||||
cxxstd: "11,14,17,2a"
|
||||
os: ubuntu-20.04
|
||||
container: ubuntu:20.04
|
||||
os: ubuntu-latest
|
||||
install: clang-11
|
||||
- toolset: clang
|
||||
compiler: clang++-12
|
||||
cxxstd: "11,14,17,2a"
|
||||
os: ubuntu-20.04
|
||||
container: ubuntu:20.04
|
||||
os: ubuntu-latest
|
||||
install: clang-12
|
||||
- toolset: clang
|
||||
compiler: clang++-13
|
||||
@@ -134,40 +149,70 @@ jobs:
|
||||
- toolset: clang
|
||||
compiler: clang++-16
|
||||
cxxstd: "11,14,17,20,2b"
|
||||
container: ubuntu:23.04
|
||||
container: ubuntu:24.04
|
||||
os: ubuntu-latest
|
||||
install: clang-16
|
||||
- toolset: clang
|
||||
compiler: clang++-17
|
||||
cxxstd: "11,14,17,20,2b"
|
||||
container: ubuntu:23.10
|
||||
container: ubuntu:24.04
|
||||
os: ubuntu-latest
|
||||
install: clang-17
|
||||
- toolset: clang
|
||||
cxxstd: "11,14,17,2a"
|
||||
os: macos-11
|
||||
compiler: clang++-18
|
||||
cxxstd: "11,14,17,20,2b"
|
||||
container: ubuntu:24.04
|
||||
os: ubuntu-latest
|
||||
install: clang-18
|
||||
- toolset: clang
|
||||
compiler: clang++-19
|
||||
cxxstd: "11,14,17,20,2b"
|
||||
container: ubuntu:24.04
|
||||
os: ubuntu-latest
|
||||
install: clang-19
|
||||
- toolset: clang
|
||||
compiler: clang++-20
|
||||
cxxstd: "11,14,17,20,23,2c"
|
||||
container: ubuntu:24.04
|
||||
os: ubuntu-latest
|
||||
install: clang-20
|
||||
- toolset: clang
|
||||
cxxstd: "11,14,17,20,2b"
|
||||
os: macos-12
|
||||
os: macos-14
|
||||
- toolset: clang
|
||||
cxxstd: "11,14,17,20,2b"
|
||||
os: macos-13
|
||||
cxxstd: "11,14,17,20,23,2c"
|
||||
os: macos-15
|
||||
- toolset: clang
|
||||
cxxstd: "11,14,17,20,23,2c"
|
||||
os: macos-26
|
||||
|
||||
runs-on: ${{matrix.os}}
|
||||
container: ${{matrix.container}}
|
||||
|
||||
container:
|
||||
image: ${{matrix.container}}
|
||||
volumes:
|
||||
- /node20217:/node20217:rw,rshared
|
||||
- ${{ startsWith(matrix.container, 'ubuntu:1') && '/node20217:/__e/node20:ro,rshared' || ' ' }}
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Setup container environment
|
||||
if: matrix.container
|
||||
run: |
|
||||
apt-get update
|
||||
apt-get -y install sudo python3 git g++
|
||||
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
|
||||
@@ -212,14 +257,6 @@ jobs:
|
||||
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
|
||||
@@ -231,12 +268,12 @@ jobs:
|
||||
- toolset: gcc
|
||||
cxxstd: "11,14,17,2a"
|
||||
addrmd: 64
|
||||
os: windows-2019
|
||||
os: windows-2022
|
||||
|
||||
runs-on: ${{matrix.os}}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Boost
|
||||
shell: cmd
|
||||
@@ -271,16 +308,13 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- os: ubuntu-20.04
|
||||
- os: ubuntu-22.04
|
||||
- os: macos-11
|
||||
- os: macos-12
|
||||
- os: macos-13
|
||||
- os: ubuntu-latest
|
||||
- os: macos-latest
|
||||
|
||||
runs-on: ${{matrix.os}}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install packages
|
||||
if: matrix.install
|
||||
@@ -319,16 +353,13 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- os: ubuntu-20.04
|
||||
- os: ubuntu-22.04
|
||||
- os: macos-11
|
||||
- os: macos-12
|
||||
- os: macos-13
|
||||
- os: ubuntu-latest
|
||||
- os: macos-latest
|
||||
|
||||
runs-on: ${{matrix.os}}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install packages
|
||||
if: matrix.install
|
||||
@@ -377,16 +408,13 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- os: ubuntu-20.04
|
||||
- os: ubuntu-22.04
|
||||
- os: macos-11
|
||||
- os: macos-12
|
||||
- os: macos-13
|
||||
- os: ubuntu-latest
|
||||
- os: macos-latest
|
||||
|
||||
runs-on: ${{matrix.os}}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install packages
|
||||
if: matrix.install
|
||||
@@ -433,13 +461,12 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- os: windows-2019
|
||||
- os: windows-2022
|
||||
- os: windows-latest
|
||||
|
||||
runs-on: ${{matrix.os}}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Boost
|
||||
shell: cmd
|
||||
@@ -482,13 +509,12 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- os: windows-2019
|
||||
- os: windows-2022
|
||||
- os: windows-latest
|
||||
|
||||
runs-on: ${{matrix.os}}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Boost
|
||||
shell: cmd
|
||||
@@ -549,13 +575,12 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- os: windows-2019
|
||||
- os: windows-2022
|
||||
- os: windows-latest
|
||||
|
||||
runs-on: ${{matrix.os}}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Boost
|
||||
shell: cmd
|
||||
|
||||
@@ -15,7 +15,7 @@ branches:
|
||||
environment:
|
||||
matrix:
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||
TOOLSET: msvc-12.0
|
||||
TOOLSET: msvc-12.0,msvc-14.0
|
||||
ADDRMD: 32,64
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||
TOOLSET: msvc-14.1,clang-win
|
||||
|
||||
21
build.jam
Normal file
21
build.jam
Normal file
@@ -0,0 +1,21 @@
|
||||
# Copyright 2023-2024 René Ferdinand Rivera Morell
|
||||
# Copyright 2024 Peter Dimov
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# https://www.boost.org/LICENSE_1_0.txt
|
||||
|
||||
require-b2 5.2 ;
|
||||
|
||||
constant boost_dependencies :
|
||||
/boost/config//boost_config
|
||||
/boost/core//boost_core
|
||||
;
|
||||
|
||||
project /boost/bind ;
|
||||
|
||||
explicit
|
||||
[ alias boost_bind : : : : <include>include <library>$(boost_dependencies) ]
|
||||
[ alias all : boost_bind test ]
|
||||
;
|
||||
|
||||
call-if : boost-library bind
|
||||
;
|
||||
@@ -737,44 +737,18 @@ template<class F, class... A>
|
||||
namespace _bi
|
||||
{
|
||||
|
||||
template< class Pm, int I > struct add_cref;
|
||||
template<class M, int I> struct add_cref;
|
||||
|
||||
template< class M, class T > struct add_cref< M T::*, 0 >
|
||||
template<class M> struct add_cref<M, 0>
|
||||
{
|
||||
typedef M type;
|
||||
};
|
||||
|
||||
template< class M, class T > struct add_cref< M T::*, 1 >
|
||||
template<class M> struct add_cref<M, 1>
|
||||
{
|
||||
#ifdef BOOST_MSVC
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable:4180)
|
||||
#endif
|
||||
typedef M const & type;
|
||||
#ifdef BOOST_MSVC
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
typedef M const& type;
|
||||
};
|
||||
|
||||
template< class R, class T > struct add_cref< R (T::*) (), 1 >
|
||||
{
|
||||
typedef void type;
|
||||
};
|
||||
|
||||
template< class R, class T > struct add_cref< R (T::*) () const, 1 >
|
||||
{
|
||||
typedef void type;
|
||||
};
|
||||
|
||||
#if defined( __cpp_noexcept_function_type ) || defined( _NOEXCEPT_TYPES_SUPPORTED )
|
||||
|
||||
template< class R, class T > struct add_cref< R (T::*) () const noexcept, 1 >
|
||||
{
|
||||
typedef void type;
|
||||
};
|
||||
|
||||
#endif // __cpp_noexcept_function_type
|
||||
|
||||
template<class R> struct isref
|
||||
{
|
||||
enum value_type { value = 0 };
|
||||
@@ -790,30 +764,34 @@ template<class R> struct isref< R* >
|
||||
enum value_type { value = 1 };
|
||||
};
|
||||
|
||||
template<class Pm, class A1> struct dm_result
|
||||
template<class M, class A1, bool fn = std::is_function<M>::value> struct dm_result
|
||||
{
|
||||
typedef typename add_cref< Pm, 1 >::type type;
|
||||
};
|
||||
|
||||
template<class Pm, class R, class F, class L> struct dm_result< Pm, bind_t<R, F, L> >
|
||||
template<class M, class A1> struct dm_result<M, A1, false>
|
||||
{
|
||||
typedef typename add_cref< M, 1 >::type type;
|
||||
};
|
||||
|
||||
template<class M, class R, class F, class L> struct dm_result<M, bind_t<R, F, L>, false>
|
||||
{
|
||||
typedef typename bind_t<R, F, L>::result_type result_type;
|
||||
typedef typename add_cref< Pm, isref< result_type >::value >::type type;
|
||||
typedef typename add_cref< M, isref< result_type >::value >::type type;
|
||||
};
|
||||
|
||||
} // namespace _bi
|
||||
|
||||
template< class A1, class M, class T >
|
||||
template<class A1, class M, class T>
|
||||
|
||||
_bi::bind_t<
|
||||
typename _bi::dm_result< M T::*, A1 >::type,
|
||||
typename _bi::dm_result<M, A1>::type,
|
||||
_mfi::dm<M, T>,
|
||||
typename _bi::list_av<A1>::type
|
||||
>
|
||||
|
||||
BOOST_BIND( M T::*f, A1 a1 )
|
||||
{
|
||||
typedef typename _bi::dm_result< M T::*, A1 >::type result_type;
|
||||
typedef typename _bi::dm_result<M, A1>::type result_type;
|
||||
typedef _mfi::dm<M, T> F;
|
||||
typedef typename _bi::list_av<A1>::type list_type;
|
||||
return _bi::bind_t< result_type, F, list_type >( F( f ), list_type( a1 ) );
|
||||
|
||||
@@ -179,7 +179,7 @@ public:
|
||||
|
||||
private:
|
||||
|
||||
typedef R (T::*Pm);
|
||||
typedef R T::*Pm;
|
||||
Pm pm_;
|
||||
|
||||
public:
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
#ifndef BOOST_IS_PLACEHOLDER_HPP_INCLUDED
|
||||
#define BOOST_IS_PLACEHOLDER_HPP_INCLUDED
|
||||
|
||||
// MS compatible compilers support #pragma once
|
||||
|
||||
#if defined( _MSC_VER ) && ( _MSC_VER >= 1020 )
|
||||
# pragma once
|
||||
#endif
|
||||
|
||||
|
||||
// is_placeholder.hpp - TR1 is_placeholder metafunction
|
||||
//
|
||||
// Copyright (c) 2006 Peter Dimov
|
||||
//
|
||||
// Distributed under the Boost Software License, Version 1.0.
|
||||
//
|
||||
// See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt
|
||||
|
||||
|
||||
namespace boost
|
||||
{
|
||||
|
||||
template< class T > struct is_placeholder
|
||||
{
|
||||
enum _vt { value = 0 };
|
||||
};
|
||||
|
||||
} // namespace boost
|
||||
|
||||
#endif // #ifndef BOOST_IS_PLACEHOLDER_HPP_INCLUDED
|
||||
@@ -24,7 +24,12 @@ project
|
||||
|
||||
<toolset>gcc:<cxxflags>$(gcc-flags)
|
||||
<toolset>clang:<cxxflags>$(gcc-flags)
|
||||
;
|
||||
|
||||
<library>/boost/bind//boost_bind
|
||||
<library>/boost/core//boost_core
|
||||
<library>/boost/function//boost_function
|
||||
<library>/boost/smart_ptr//boost_smart_ptr
|
||||
;
|
||||
|
||||
# quick test (for CI)
|
||||
run quick.cpp ;
|
||||
@@ -41,7 +46,8 @@ run bind_not_test.cpp ;
|
||||
run bind_rel_test.cpp ;
|
||||
run bind_function_test.cpp ;
|
||||
run bind_lookup_problem_test.cpp ;
|
||||
run bind_rv_sp_test.cpp ;
|
||||
run bind_rv_sp_test.cpp
|
||||
: : : <toolset>msvc-12.0:<build>no ;
|
||||
compile bind_unary_addr.cpp ;
|
||||
run bind_dm3_test.cpp ;
|
||||
run bind_visit_test.cpp ;
|
||||
@@ -51,12 +57,17 @@ run bind_and_or_test.cpp ;
|
||||
run bind_void_test.cpp ;
|
||||
run bind_void_dm_test.cpp ;
|
||||
run bind_void_mf_test.cpp ;
|
||||
run mem_fn_test.cpp ;
|
||||
run mem_fn_void_test.cpp ;
|
||||
run mem_fn_derived_test.cpp ;
|
||||
run mem_fn_test.cpp
|
||||
: : : <toolset>msvc-12.0:<build>no ;
|
||||
run mem_fn_void_test.cpp
|
||||
: : : <toolset>msvc-12.0:<build>no ;
|
||||
run mem_fn_derived_test.cpp
|
||||
: : : <toolset>msvc-12.0:<build>no ;
|
||||
run mem_fn_eq_test.cpp ;
|
||||
run mem_fn_dm_test.cpp ;
|
||||
run mem_fn_rv_test.cpp ;
|
||||
run mem_fn_dm_test.cpp
|
||||
: : : <toolset>msvc-12.0:<build>no ;
|
||||
run mem_fn_rv_test.cpp
|
||||
: : : <toolset>msvc-12.0:<build>no ;
|
||||
run ref_fn_test.cpp ;
|
||||
run bind_fnobj2_test.cpp ;
|
||||
run bind_fn2_test.cpp ;
|
||||
@@ -64,7 +75,8 @@ run bind_mf2_test.cpp ;
|
||||
run bind_eq2_test.cpp ;
|
||||
run mem_fn_ref_test.cpp ;
|
||||
run bind_ref_test.cpp ;
|
||||
run bind_eq3_test.cpp ;
|
||||
run bind_eq3_test.cpp
|
||||
: : : <toolset>msvc-12.0:<build>no ;
|
||||
run protect_test.cpp ;
|
||||
run mem_fn_unary_addr_test.cpp ;
|
||||
run bind_function2_test.cpp ;
|
||||
@@ -75,7 +87,8 @@ run placeholder_const_ref_test.cpp ;
|
||||
run bind_function_ap_test.cpp ;
|
||||
run bind_type_test.cpp ;
|
||||
run bind_unique_ptr_test.cpp ;
|
||||
run bind_nested_rv_test.cpp ;
|
||||
run bind_nested_rv_test.cpp
|
||||
: : : <toolset>gcc-4.7:<build>no <toolset>msvc-12.0:<build>no ;
|
||||
compile arg_copy_test.cpp ;
|
||||
compile-fail arg_copy_fail.cpp
|
||||
: <warnings>off ;
|
||||
@@ -85,13 +98,17 @@ run bind_stdcall_test.cpp ;
|
||||
run bind_cdecl_mf_test.cpp ;
|
||||
run bind_fastcall_mf_test.cpp ;
|
||||
run bind_stdcall_mf_test.cpp ;
|
||||
run mem_fn_cdecl_test.cpp ;
|
||||
run mem_fn_fastcall_test.cpp ;
|
||||
run mem_fn_stdcall_test.cpp ;
|
||||
run mem_fn_cdecl_test.cpp
|
||||
: : : <toolset>msvc-12.0:<build>no ;
|
||||
run mem_fn_fastcall_test.cpp
|
||||
: : : <toolset>msvc-12.0:<build>no ;
|
||||
run mem_fn_stdcall_test.cpp
|
||||
: : : <toolset>msvc-12.0:<build>no ;
|
||||
run bind_noexcept_test.cpp ;
|
||||
run bind_noexcept_mf_test.cpp ;
|
||||
run global_placeholders.cpp ;
|
||||
run mem_fn_noexcept_test.cpp ;
|
||||
run mem_fn_noexcept_test.cpp
|
||||
: : : <toolset>msvc-12.0:<build>no ;
|
||||
run bind_cpp20_test.cpp ;
|
||||
run protect_test2.cpp ;
|
||||
run protect_cpp20_test.cpp ;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include <boost/config.hpp>
|
||||
|
||||
#ifndef BOOST_MSVC
|
||||
#ifndef _MSC_VER
|
||||
|
||||
int main()
|
||||
{
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
|
||||
#if defined(BOOST_GCC) && BOOST_GCC >= 130000 && BOOST_GCC < 140000
|
||||
#if defined(BOOST_GCC) && BOOST_GCC >= 130000 && BOOST_GCC < 150000
|
||||
// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113256
|
||||
# pragma GCC diagnostic ignored "-Wdangling-reference"
|
||||
#endif
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include <boost/config.hpp>
|
||||
|
||||
#ifndef BOOST_MSVC
|
||||
#ifndef _MSC_VER
|
||||
|
||||
int main()
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include <boost/config.hpp>
|
||||
|
||||
#ifndef BOOST_MSVC
|
||||
#ifndef _MSC_VER
|
||||
|
||||
int main()
|
||||
{
|
||||
|
||||
@@ -8,6 +8,13 @@
|
||||
// http://www.boost.org/LICENSE_1_0.txt
|
||||
//
|
||||
|
||||
#if defined(__GNUC__)
|
||||
// -Warray-bounds false positive under GCC 14 UBSAN
|
||||
// ./boost/bind/mem_fn.hpp:74:59: error: array subscript 'int (**)(...)[0]' is partly outside array bounds of 'X [1]' [-Werror=array-bounds=]
|
||||
// 74 | return (get_pointer( std::forward<U>( u ) )->*pm_)( std::forward<A>( a )... );
|
||||
# pragma GCC diagnostic ignored "-Warray-bounds"
|
||||
#endif
|
||||
|
||||
#include <boost/bind/bind.hpp>
|
||||
#include <boost/ref.hpp>
|
||||
#include <boost/core/lightweight_test.hpp>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include <boost/config.hpp>
|
||||
|
||||
#ifndef BOOST_MSVC
|
||||
#ifndef _MSC_VER
|
||||
|
||||
int main()
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include <boost/config.hpp>
|
||||
|
||||
#ifndef BOOST_MSVC
|
||||
#ifndef _MSC_VER
|
||||
|
||||
int main()
|
||||
{
|
||||
|
||||
@@ -15,4 +15,4 @@ target_link_libraries(quick Boost::bind Boost::core)
|
||||
enable_testing()
|
||||
add_test(quick quick)
|
||||
|
||||
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
|
||||
add_custom_target(check VERBATIM COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
|
||||
|
||||
@@ -10,7 +10,6 @@ add_subdirectory(../.. boostorg/bind)
|
||||
add_subdirectory(../../../assert boostorg/assert)
|
||||
add_subdirectory(../../../config boostorg/config)
|
||||
add_subdirectory(../../../core boostorg/core)
|
||||
add_subdirectory(../../../static_assert boostorg/static_assert)
|
||||
add_subdirectory(../../../throw_exception boostorg/throw_exception)
|
||||
|
||||
add_executable(quick ../quick.cpp)
|
||||
@@ -19,4 +18,4 @@ target_link_libraries(quick Boost::bind Boost::core)
|
||||
enable_testing()
|
||||
add_test(quick quick)
|
||||
|
||||
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
|
||||
add_custom_target(check VERBATIM COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include <boost/config.hpp>
|
||||
|
||||
#ifndef BOOST_MSVC
|
||||
#ifndef _MSC_VER
|
||||
|
||||
int main()
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include <boost/config.hpp>
|
||||
|
||||
#ifndef BOOST_MSVC
|
||||
#ifndef _MSC_VER
|
||||
|
||||
int main()
|
||||
{
|
||||
@@ -29,18 +29,8 @@ int main()
|
||||
|
||||
#include <boost/mem_fn.hpp>
|
||||
#include <boost/shared_ptr.hpp>
|
||||
|
||||
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
||||
#pragma warning(push, 3)
|
||||
#endif
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
|
||||
struct X
|
||||
{
|
||||
mutable unsigned int hash;
|
||||
|
||||
@@ -19,18 +19,8 @@
|
||||
|
||||
#include <boost/mem_fn.hpp>
|
||||
#include <boost/shared_ptr.hpp>
|
||||
|
||||
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
||||
#pragma warning(push, 3)
|
||||
#endif
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
|
||||
struct B
|
||||
{
|
||||
mutable unsigned int hash;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include <boost/config.hpp>
|
||||
|
||||
#ifndef BOOST_MSVC
|
||||
#ifndef _MSC_VER
|
||||
|
||||
int main()
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include <boost/config.hpp>
|
||||
|
||||
#ifndef BOOST_MSVC
|
||||
#ifndef _MSC_VER
|
||||
|
||||
int main()
|
||||
{
|
||||
@@ -29,18 +29,8 @@ int main()
|
||||
|
||||
#include <boost/mem_fn.hpp>
|
||||
#include <boost/shared_ptr.hpp>
|
||||
|
||||
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
||||
#pragma warning(push, 3)
|
||||
#endif
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
|
||||
struct X
|
||||
{
|
||||
mutable unsigned int hash;
|
||||
|
||||
@@ -20,17 +20,8 @@
|
||||
|
||||
#include <boost/mem_fn.hpp>
|
||||
#include <boost/shared_ptr.hpp>
|
||||
|
||||
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
||||
#pragma warning(push, 3)
|
||||
#endif
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
unsigned int hash = 0;
|
||||
|
||||
struct X
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include <boost/config.hpp>
|
||||
|
||||
#ifndef BOOST_MSVC
|
||||
#ifndef _MSC_VER
|
||||
|
||||
int main()
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include <boost/config.hpp>
|
||||
|
||||
#ifndef BOOST_MSVC
|
||||
#ifndef _MSC_VER
|
||||
|
||||
int main()
|
||||
{
|
||||
@@ -29,18 +29,8 @@ int main()
|
||||
|
||||
#include <boost/mem_fn.hpp>
|
||||
#include <boost/shared_ptr.hpp>
|
||||
|
||||
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
||||
#pragma warning(push, 3)
|
||||
#endif
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
|
||||
struct X
|
||||
{
|
||||
mutable unsigned int hash;
|
||||
|
||||
@@ -19,18 +19,8 @@
|
||||
|
||||
#include <boost/mem_fn.hpp>
|
||||
#include <boost/shared_ptr.hpp>
|
||||
|
||||
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
||||
#pragma warning(push, 3)
|
||||
#endif
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
|
||||
struct X
|
||||
{
|
||||
mutable unsigned int hash;
|
||||
|
||||
@@ -19,18 +19,8 @@
|
||||
|
||||
#include <boost/mem_fn.hpp>
|
||||
#include <boost/shared_ptr.hpp>
|
||||
|
||||
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
||||
#pragma warning(push, 3)
|
||||
#endif
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
|
||||
struct X
|
||||
{
|
||||
mutable unsigned int hash;
|
||||
|
||||
Reference in New Issue
Block a user