Compare commits

...

32 Commits

Author SHA1 Message Date
Peter Dimov
8cc29fc19d Add msvc-14.0 to appveyor.yml 2026-01-03 18:00:14 +02:00
Peter Dimov
ef788bb6e2 Update .drone.jsonnet 2026-01-03 14:57:35 +02:00
Peter Dimov
6b861090ba Merge pull request #38 from bmagistro/remove-redundant-parentesis
Remove redundant parenthesis on typedef
2026-01-03 14:35:01 +02:00
Peter Dimov
e4b7954bf6 Update cmake_subdir_test 2026-01-03 13:46:48 +02:00
Peter Dimov
cd65e603a1 Update ci.yml 2026-01-03 13:32:02 +02:00
Peter Dimov
f6abee248f Remove boost/is_placeholder.hpp (moved to Core) 2026-01-02 13:21:18 +02:00
Ben Magistro
90caab61f2 Remove redundant parenthesis on typedef
Signed-off-by: Ben Magistro <koncept1@gmail.com>
2025-07-29 01:33:35 +00:00
Peter Dimov
a541a8d5c1 Update .drone.jsonnet 2024-12-13 03:05:02 +02:00
Peter Dimov
e027093c53 Disable tests using shared_ptr under msvc-12.0 2024-12-13 03:03:07 +02:00
Peter Dimov
fac72450f2 Disable bind_nested_rv_test.cpp for GCC 4.7 2024-12-13 02:57:12 +02:00
Peter Dimov
ac4c6f7c7a Update .drone.jsonnet 2024-12-13 02:49:20 +02:00
Peter Dimov
6d11c8931c Apply Node20 workaround 2024-12-12 22:23:34 +02:00
Peter Dimov
71393b0d28 Update ci.yml 2024-12-12 20:28:09 +02:00
Peter Dimov
68a9e0db85 Update .drone.jsonnet 2024-08-21 10:47:20 +03:00
Peter Dimov
96e8802169 Add VERBATIM to add_custom_target 2024-08-20 19:40:37 +03:00
Peter Dimov
620ddec3ee Update build.jam, test/Jamfile 2024-08-20 19:39:13 +03:00
Rene Rivera
0e7a2373c1 Update build deps. 2024-07-31 08:31:28 -05:00
Rene Rivera
5af56ff9f8 Move inter-lib dependencies to a project variable and into the build targets. 2024-07-23 22:34:23 -05:00
Rene Rivera
a902503477 Update copyright dates. 2024-07-20 22:52:04 -05:00
Rene Rivera
c72cc6f914 Change all <source> references to <library>. 2024-07-20 19:36:58 -05:00
Rene Rivera
0de59ef498 Sync from upstream. 2024-07-12 08:54:07 -05:00
Peter Dimov
97776ec7ba Disable -Warray-bounds in bind_ref_test because of GCC 14 UBSAN 2024-07-10 12:38:24 +03:00
Peter Dimov
76c1733f47 Update .drone.jsonnet 2024-07-10 11:41:39 +03:00
Peter Dimov
769479a964 Refactor _bi::dm_result<> to not form references to functions. Fixes #35. 2024-07-09 20:24:19 +03:00
Peter Dimov
cb724dcf57 Remove obsolete warning suppression 2024-07-09 20:07:25 +03:00
Peter Dimov
b7edec7300 Enable cdecl, stdcall, fastcall tests when _MSC_VER is defined, instead of just when BOOST_MSVC is defined. Refs #35. 2024-07-09 20:03:52 +03:00
Peter Dimov
8729fbdbfa Update GCC workaround in bind_dm3_test 2024-07-09 19:41:04 +03:00
Peter Dimov
bdc7a9cfc5 Update ci.yml 2024-07-09 18:57:46 +03:00
Rene Rivera
2e0c546d64 Bump B2 require to 5.2 2024-06-14 11:33:55 -05:00
Rene Rivera
c1bdcd3e9b Add requires-b2 check to top-level build file. 2024-05-05 09:00:00 -05:00
Rene Rivera
da830bc0eb Switch to library requirements instead of source. As source puts extra source in install targets. 2024-03-29 21:12:36 -05:00
Rene Rivera
e18818ec06 Make the library modular usable. 2024-03-11 08:27:02 -05:00
27 changed files with 252 additions and 249 deletions

View File

@@ -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' },
),
]

View File

@@ -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

View File

@@ -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
View 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
;

View File

@@ -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 ) );

View File

@@ -179,7 +179,7 @@ public:
private:
typedef R (T::*Pm);
typedef R T::*Pm;
Pm pm_;
public:

View File

@@ -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

View File

@@ -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 ;

View File

@@ -1,6 +1,6 @@
#include <boost/config.hpp>
#ifndef BOOST_MSVC
#ifndef _MSC_VER
int main()
{

View File

@@ -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

View File

@@ -1,6 +1,6 @@
#include <boost/config.hpp>
#ifndef BOOST_MSVC
#ifndef _MSC_VER
int main()
{

View File

@@ -1,6 +1,6 @@
#include <boost/config.hpp>
#ifndef BOOST_MSVC
#ifndef _MSC_VER
int main()
{

View File

@@ -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>

View File

@@ -1,6 +1,6 @@
#include <boost/config.hpp>
#ifndef BOOST_MSVC
#ifndef _MSC_VER
int main()
{

View File

@@ -1,6 +1,6 @@
#include <boost/config.hpp>
#ifndef BOOST_MSVC
#ifndef _MSC_VER
int main()
{

View File

@@ -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>)

View File

@@ -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>)

View File

@@ -1,6 +1,6 @@
#include <boost/config.hpp>
#ifndef BOOST_MSVC
#ifndef _MSC_VER
int main()
{

View File

@@ -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;

View File

@@ -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;

View File

@@ -1,6 +1,6 @@
#include <boost/config.hpp>
#ifndef BOOST_MSVC
#ifndef _MSC_VER
int main()
{

View File

@@ -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;

View File

@@ -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

View File

@@ -1,6 +1,6 @@
#include <boost/config.hpp>
#ifndef BOOST_MSVC
#ifndef _MSC_VER
int main()
{

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;