mirror of
https://github.com/boostorg/bind.git
synced 2026-04-14 05:36:01 +02:00
Compare commits
20 Commits
feature/re
...
feature/mo
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
96e8802169 | ||
|
|
620ddec3ee | ||
|
|
0e7a2373c1 | ||
|
|
5af56ff9f8 | ||
|
|
a902503477 | ||
|
|
c72cc6f914 | ||
|
|
0de59ef498 | ||
|
|
97776ec7ba | ||
|
|
76c1733f47 | ||
|
|
769479a964 | ||
|
|
cb724dcf57 | ||
|
|
b7edec7300 | ||
|
|
8729fbdbfa | ||
|
|
bdc7a9cfc5 | ||
|
|
2e0c546d64 | ||
|
|
c1bdcd3e9b | ||
|
|
da830bc0eb | ||
|
|
e18818ec06 | ||
|
|
9fbfdcb357 | ||
|
|
ece4b221df |
@@ -190,13 +190,6 @@ local windows_pipeline(name, image, environment, arch = "amd64") =
|
||||
"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",
|
||||
@@ -211,6 +204,34 @@ local windows_pipeline(name, image, environment, arch = "amd64") =
|
||||
"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",
|
||||
@@ -281,6 +302,20 @@ local windows_pipeline(name, image, environment, arch = "amd64") =
|
||||
"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",
|
||||
),
|
||||
|
||||
macos_pipeline(
|
||||
"MacOS 10.15 Xcode 12.2 UBSAN",
|
||||
{ TOOLSET: 'clang', COMPILER: 'clang++', CXXSTD: '11,14,1z' } + ubsan,
|
||||
|
||||
42
.github/workflows/ci.yml
vendored
42
.github/workflows/ci.yml
vendored
@@ -49,8 +49,7 @@ jobs:
|
||||
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
|
||||
@@ -60,6 +59,11 @@ jobs:
|
||||
container: ubuntu:23.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"
|
||||
@@ -144,14 +148,20 @@ jobs:
|
||||
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
|
||||
cxxstd: "11,14,17,20,2b"
|
||||
os: macos-12
|
||||
- toolset: clang
|
||||
cxxstd: "11,14,17,20,2b"
|
||||
os: macos-13
|
||||
- toolset: clang
|
||||
cxxstd: "11,14,17,20,2b"
|
||||
os: macos-14
|
||||
|
||||
runs-on: ${{matrix.os}}
|
||||
container: ${{matrix.container}}
|
||||
@@ -161,6 +171,10 @@ jobs:
|
||||
shell: bash
|
||||
|
||||
steps:
|
||||
- name: Enable Node 16
|
||||
run: |
|
||||
echo "ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true" >> $GITHUB_ENV
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Setup container environment
|
||||
@@ -236,7 +250,7 @@ jobs:
|
||||
runs-on: ${{matrix.os}}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Boost
|
||||
shell: cmd
|
||||
@@ -273,14 +287,14 @@ jobs:
|
||||
include:
|
||||
- os: ubuntu-20.04
|
||||
- os: ubuntu-22.04
|
||||
- os: macos-11
|
||||
- os: macos-12
|
||||
- os: macos-13
|
||||
- os: macos-14
|
||||
|
||||
runs-on: ${{matrix.os}}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install packages
|
||||
if: matrix.install
|
||||
@@ -321,14 +335,14 @@ jobs:
|
||||
include:
|
||||
- os: ubuntu-20.04
|
||||
- os: ubuntu-22.04
|
||||
- os: macos-11
|
||||
- os: macos-12
|
||||
- os: macos-13
|
||||
- os: macos-14
|
||||
|
||||
runs-on: ${{matrix.os}}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install packages
|
||||
if: matrix.install
|
||||
@@ -379,14 +393,14 @@ jobs:
|
||||
include:
|
||||
- os: ubuntu-20.04
|
||||
- os: ubuntu-22.04
|
||||
- os: macos-11
|
||||
- os: macos-12
|
||||
- os: macos-13
|
||||
- os: macos-14
|
||||
|
||||
runs-on: ${{matrix.os}}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install packages
|
||||
if: matrix.install
|
||||
@@ -439,7 +453,7 @@ jobs:
|
||||
runs-on: ${{matrix.os}}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Boost
|
||||
shell: cmd
|
||||
@@ -488,7 +502,7 @@ jobs:
|
||||
runs-on: ${{matrix.os}}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Boost
|
||||
shell: cmd
|
||||
@@ -555,7 +569,7 @@ jobs:
|
||||
runs-on: ${{matrix.os}}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Boost
|
||||
shell: cmd
|
||||
|
||||
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
|
||||
;
|
||||
@@ -311,7 +311,7 @@ public:
|
||||
typedef typename result_traits<R, F>::type result_type;
|
||||
typedef bind_t this_type;
|
||||
|
||||
bind_t( F f, L const & l ): f_( f ), l_( l ) {}
|
||||
bind_t( F f, L const & l ): f_( std::move(f) ), l_( l ) {}
|
||||
|
||||
//
|
||||
|
||||
@@ -497,7 +497,7 @@ template<class R, class F, class... A>
|
||||
BOOST_BIND( F f, A... a )
|
||||
{
|
||||
typedef typename _bi::list_av<A...>::type list_type;
|
||||
return _bi::bind_t<R, F, list_type>( f, list_type( a... ) );
|
||||
return _bi::bind_t<R, F, list_type>( std::move(f), list_type( a... ) );
|
||||
}
|
||||
|
||||
#else
|
||||
@@ -510,7 +510,7 @@ template<class R, class F>
|
||||
BOOST_BIND( F f )
|
||||
{
|
||||
typedef typename _bi::list_av<>::type list_type;
|
||||
return _bi::bind_t<R, F, list_type>( f, list_type() );
|
||||
return _bi::bind_t<R, F, list_type>( std::move(f), list_type() );
|
||||
}
|
||||
|
||||
template<class R, class F, class A1>
|
||||
@@ -518,7 +518,7 @@ template<class R, class F, class A1>
|
||||
BOOST_BIND( F f, A1 a1 )
|
||||
{
|
||||
typedef typename _bi::list_av<A1>::type list_type;
|
||||
return _bi::bind_t<R, F, list_type>( f, list_type( a1 ) );
|
||||
return _bi::bind_t<R, F, list_type>( std::move(f), list_type( a1 ) );
|
||||
}
|
||||
|
||||
template<class R, class F, class A1, class A2>
|
||||
@@ -526,7 +526,7 @@ template<class R, class F, class A1, class A2>
|
||||
BOOST_BIND( F f, A1 a1, A2 a2 )
|
||||
{
|
||||
typedef typename _bi::list_av<A1, A2>::type list_type;
|
||||
return _bi::bind_t<R, F, list_type>( f, list_type( a1, a2 ) );
|
||||
return _bi::bind_t<R, F, list_type>( std::move(f), list_type( a1, a2 ) );
|
||||
}
|
||||
|
||||
template<class R, class F, class A1, class A2, class A3>
|
||||
@@ -534,7 +534,7 @@ template<class R, class F, class A1, class A2, class A3>
|
||||
BOOST_BIND( F f, A1 a1, A2 a2, A3 a3 )
|
||||
{
|
||||
typedef typename _bi::list_av<A1, A2, A3>::type list_type;
|
||||
return _bi::bind_t<R, F, list_type>( f, list_type( a1, a2, a3 ) );
|
||||
return _bi::bind_t<R, F, list_type>( std::move(f), list_type( a1, a2, a3 ) );
|
||||
}
|
||||
|
||||
template<class R, class F, class A1, class A2, class A3, class A4>
|
||||
@@ -542,7 +542,7 @@ template<class R, class F, class A1, class A2, class A3, class A4>
|
||||
BOOST_BIND( F f, A1 a1, A2 a2, A3 a3, A4 a4 )
|
||||
{
|
||||
typedef typename _bi::list_av<A1, A2, A3, A4>::type list_type;
|
||||
return _bi::bind_t<R, F, list_type>( f, list_type( a1, a2, a3, a4 ) );
|
||||
return _bi::bind_t<R, F, list_type>( std::move(f), list_type( a1, a2, a3, a4 ) );
|
||||
}
|
||||
|
||||
template<class R, class F, class A1, class A2, class A3, class A4, class A5>
|
||||
@@ -550,7 +550,7 @@ template<class R, class F, class A1, class A2, class A3, class A4, class A5>
|
||||
BOOST_BIND( F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5 )
|
||||
{
|
||||
typedef typename _bi::list_av<A1, A2, A3, A4, A5>::type list_type;
|
||||
return _bi::bind_t<R, F, list_type>( f, list_type( a1, a2, a3, a4, a5 ) );
|
||||
return _bi::bind_t<R, F, list_type>( std::move(f), list_type( a1, a2, a3, a4, a5 ) );
|
||||
}
|
||||
|
||||
template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6>
|
||||
@@ -558,7 +558,7 @@ template<class R, class F, class A1, class A2, class A3, class A4, class A5, cla
|
||||
BOOST_BIND( F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6 )
|
||||
{
|
||||
typedef typename _bi::list_av<A1, A2, A3, A4, A5, A6>::type list_type;
|
||||
return _bi::bind_t<R, F, list_type>( f, list_type( a1, a2, a3, a4, a5, a6 ) );
|
||||
return _bi::bind_t<R, F, list_type>( std::move(f), list_type( a1, a2, a3, a4, a5, a6 ) );
|
||||
}
|
||||
|
||||
template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7>
|
||||
@@ -566,7 +566,7 @@ template<class R, class F, class A1, class A2, class A3, class A4, class A5, cla
|
||||
BOOST_BIND( F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7 )
|
||||
{
|
||||
typedef typename _bi::list_av<A1, A2, A3, A4, A5, A6, A7>::type list_type;
|
||||
return _bi::bind_t<R, F, list_type>( f, list_type( a1, a2, a3, a4, a5, a6, a7 ) );
|
||||
return _bi::bind_t<R, F, list_type>( std::move(f), list_type( a1, a2, a3, a4, a5, a6, a7 ) );
|
||||
}
|
||||
|
||||
template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
|
||||
@@ -574,7 +574,7 @@ template<class R, class F, class A1, class A2, class A3, class A4, class A5, cla
|
||||
BOOST_BIND( F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8 )
|
||||
{
|
||||
typedef typename _bi::list_av<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
|
||||
return _bi::bind_t<R, F, list_type>( f, list_type( a1, a2, a3, a4, a5, a6, a7, a8 ) );
|
||||
return _bi::bind_t<R, F, list_type>( std::move(f), list_type( a1, a2, a3, a4, a5, a6, a7, a8 ) );
|
||||
}
|
||||
|
||||
template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
|
||||
@@ -582,7 +582,7 @@ template<class R, class F, class A1, class A2, class A3, class A4, class A5, cla
|
||||
BOOST_BIND( F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9 )
|
||||
{
|
||||
typedef typename _bi::list_av<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
|
||||
return _bi::bind_t<R, F, list_type>( f, list_type( a1, a2, a3, a4, a5, a6, a7, a8, a9 ) );
|
||||
return _bi::bind_t<R, F, list_type>( std::move(f), list_type( a1, a2, a3, a4, a5, a6, a7, a8, a9 ) );
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -594,7 +594,7 @@ template<class R, class F, class... A>
|
||||
BOOST_BIND( boost::type<R>, F f, A... a )
|
||||
{
|
||||
typedef typename _bi::list_av<A...>::type list_type;
|
||||
return _bi::bind_t<R, F, list_type>( f, list_type( a... ) );
|
||||
return _bi::bind_t<R, F, list_type>( std::move(f), list_type( a... ) );
|
||||
}
|
||||
|
||||
// adaptable function objects
|
||||
@@ -604,7 +604,7 @@ template<class F, class... A>
|
||||
BOOST_BIND( F f, A... a )
|
||||
{
|
||||
typedef typename _bi::list_av<A...>::type list_type;
|
||||
return _bi::bind_t<_bi::unspecified, F, list_type>( f, list_type( a... ) );
|
||||
return _bi::bind_t<_bi::unspecified, F, list_type>( std::move(f), list_type( a... ) );
|
||||
}
|
||||
|
||||
// function pointers
|
||||
@@ -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 ) );
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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>)
|
||||
|
||||
@@ -19,4 +19,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