1
0
forked from boostorg/bind

Compare commits

..

2 Commits

Author SHA1 Message Date
Peter Dimov
dab3578e44 Remove C++03 from Travis 2019-11-06 01:35:19 +02:00
Peter Dimov
bf17d15d3c Use std::mem_fn, std::bind 2019-11-05 18:58:02 +02:00
67 changed files with 521 additions and 568 deletions

View File

@@ -6,7 +6,7 @@ language: cpp
sudo: false sudo: false
dist: xenial dist: trusty
branches: branches:
only: only:
@@ -26,21 +26,11 @@ matrix:
include: include:
- os: linux - os: linux
compiler: g++ compiler: g++
env: TOOLSET=gcc COMPILER=g++ CXXSTD=03,11 env: TOOLSET=gcc COMPILER=g++ CXXSTD=11
- os: linux
compiler: g++-4.4
env: TOOLSET=gcc COMPILER=g++-4.4 CXXSTD=98
addons:
apt:
packages:
- g++-4.4
sources:
- ubuntu-toolchain-r-test
- os: linux - os: linux
compiler: g++-4.6 compiler: g++-4.6
env: TOOLSET=gcc COMPILER=g++-4.6 CXXSTD=03,0x env: TOOLSET=gcc COMPILER=g++-4.6 CXXSTD=0x
addons: addons:
apt: apt:
packages: packages:
@@ -50,7 +40,7 @@ matrix:
- os: linux - os: linux
compiler: g++-4.7 compiler: g++-4.7
env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=03,11 env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=11
addons: addons:
apt: apt:
packages: packages:
@@ -60,7 +50,7 @@ matrix:
- os: linux - os: linux
compiler: g++-4.8 compiler: g++-4.8
env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=03,11 env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=11
addons: addons:
apt: apt:
packages: packages:
@@ -69,7 +59,7 @@ matrix:
- ubuntu-toolchain-r-test - ubuntu-toolchain-r-test
- os: linux - os: linux
compiler: g++-4.9 compiler: g++-4.9
env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=03,11 env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=11
addons: addons:
apt: apt:
packages: packages:
@@ -79,7 +69,7 @@ matrix:
- os: linux - os: linux
compiler: g++-5 compiler: g++-5
env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=03,11,14,1z env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=11,14,1z
addons: addons:
apt: apt:
packages: packages:
@@ -89,7 +79,7 @@ matrix:
- os: linux - os: linux
compiler: g++-6 compiler: g++-6
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=03,11,14,1z env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=11,14,1z
addons: addons:
apt: apt:
packages: packages:
@@ -100,7 +90,7 @@ matrix:
- os: linux - os: linux
dist: trusty dist: trusty
compiler: g++-7 compiler: g++-7
env: TOOLSET=gcc COMPILER=g++-7 CXXSTD=03,11,14,17 env: TOOLSET=gcc COMPILER=g++-7 CXXSTD=11,14,17
addons: addons:
apt: apt:
packages: packages:
@@ -110,7 +100,7 @@ matrix:
- os: linux - os: linux
compiler: g++-8 compiler: g++-8
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=03,11,14,17,2a env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=11,14,17,2a
addons: addons:
apt: apt:
packages: packages:
@@ -120,7 +110,7 @@ matrix:
- os: linux - os: linux
compiler: g++-9 compiler: g++-9
env: TOOLSET=gcc COMPILER=g++-9 CXXSTD=03,11,14,17,2a env: TOOLSET=gcc COMPILER=g++-9 CXXSTD=11,14,17,2a
addons: addons:
apt: apt:
packages: packages:
@@ -130,21 +120,19 @@ matrix:
- os: linux - os: linux
compiler: clang++ compiler: clang++
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11 env: TOOLSET=clang COMPILER=clang++ CXXSTD=11
- os: linux - os: linux
dist: trusty
compiler: /usr/bin/clang++ compiler: /usr/bin/clang++
env: TOOLSET=clang COMPILER=/usr/bin/clang++ CXXSTD=03,11 env: TOOLSET=clang COMPILER=/usr/bin/clang++ CXXSTD=11
addons: addons:
apt: apt:
packages: packages:
- clang-3.3 - clang-3.3
- os: linux - os: linux
dist: trusty
compiler: /usr/bin/clang++ compiler: /usr/bin/clang++
env: TOOLSET=clang COMPILER=/usr/bin/clang++ CXXSTD=03,11 env: TOOLSET=clang COMPILER=/usr/bin/clang++ CXXSTD=11
addons: addons:
apt: apt:
packages: packages:
@@ -152,122 +140,120 @@ matrix:
- os: linux - os: linux
compiler: clang++-3.5 compiler: clang++-3.5
env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=03,11,14,1z env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=11,14,1z
addons: addons:
apt: apt:
packages: packages:
- clang-3.5 - clang-3.5
- libstdc++-4.9-dev
sources: sources:
- ubuntu-toolchain-r-test - ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.5
- os: linux - os: linux
compiler: clang++-3.6 compiler: clang++-3.6
env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=03,11,14,1z env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=11,14,1z
addons: addons:
apt: apt:
packages: packages:
- clang-3.6 - clang-3.6
sources: sources:
- ubuntu-toolchain-r-test - ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.6
- os: linux - os: linux
compiler: clang++-3.7 compiler: clang++-3.7
env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=03,11,14,1z env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=11,14,1z
addons: addons:
apt: apt:
packages: packages:
- clang-3.7 - clang-3.7
sources: sources:
- ubuntu-toolchain-r-test - ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.7
- os: linux - os: linux
compiler: clang++-3.8 compiler: clang++-3.8
env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=03,11,14,1z env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=11,14,1z
addons: addons:
apt: apt:
packages: packages:
- clang-3.8 - clang-3.8
- libstdc++-4.9-dev
sources: sources:
- ubuntu-toolchain-r-test - ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.8
- os: linux - os: linux
compiler: clang++-3.9 compiler: clang++-3.9
env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=03,11,14,1z env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=11,14,1z
addons: addons:
apt: apt:
packages: packages:
- clang-3.9 - clang-3.9
- libstdc++-4.9-dev
sources: sources:
- ubuntu-toolchain-r-test - ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.9
- os: linux - os: linux
compiler: clang++-4.0 compiler: clang++-4.0
env: TOOLSET=clang COMPILER=clang++-4.0 CXXSTD=03,11,14,1z env: TOOLSET=clang COMPILER=clang++-4.0 CXXSTD=11,14,1z
addons: addons:
apt: apt:
packages: packages:
- clang-4.0 - clang-4.0
sources: sources:
- ubuntu-toolchain-r-test - ubuntu-toolchain-r-test
- llvm-toolchain-trusty-4.0
- os: linux - os: linux
compiler: clang++-5.0 compiler: clang++-5.0
env: TOOLSET=clang COMPILER=clang++-5.0 CXXSTD=03,11,14,1z env: TOOLSET=clang COMPILER=clang++-5.0 CXXSTD=11,14,1z
addons: addons:
apt: apt:
packages: packages:
- clang-5.0 - clang-5.0
sources: sources:
- ubuntu-toolchain-r-test - ubuntu-toolchain-r-test
- llvm-toolchain-trusty-5.0
- os: linux - os: linux
compiler: clang++-6.0 compiler: clang++-6.0
env: TOOLSET=clang COMPILER=clang++-6.0 CXXSTD=03,11,14,17,2a env: TOOLSET=clang COMPILER=clang++-6.0 CXXSTD=11,14,17,2a
addons: addons:
apt: apt:
packages: packages:
- clang-6.0 - clang-6.0
sources: sources:
- ubuntu-toolchain-r-test - ubuntu-toolchain-r-test
- llvm-toolchain-trusty-6.0
- os: linux - os: linux
compiler: clang++-7 compiler: clang++-7
env: TOOLSET=clang COMPILER=clang++-7 CXXSTD=03,11,14,17,2a env: TOOLSET=clang COMPILER=clang++-7 CXXSTD=11,14,17,2a
addons: addons:
apt: apt:
packages: packages:
- clang-7 - clang-7
sources: sources:
- ubuntu-toolchain-r-test - ubuntu-toolchain-r-test
- llvm-toolchain-xenial-7 - llvm-toolchain-trusty-7
- os: linux - os: linux
compiler: clang++-8 compiler: clang++-8
env: TOOLSET=clang COMPILER=clang++-8 CXXSTD=03,11,14,17,2a env: TOOLSET=clang COMPILER=clang++-8 CXXSTD=11,14,17,2a
addons: addons:
apt: apt:
packages: packages:
- clang-8 - clang-8
sources: sources:
- ubuntu-toolchain-r-test - ubuntu-toolchain-r-test
- llvm-toolchain-xenial-8 - llvm-toolchain-trusty-8
- os: linux - os: linux
compiler: clang++-9
env: TOOLSET=clang COMPILER=clang++-9 CXXSTD=03,11,14,17,2a
addons:
apt:
packages:
- clang-9
sources:
- ubuntu-toolchain-r-test
- sourceline: 'deb https://apt.llvm.org/xenial/ llvm-toolchain-xenial-9 main'
key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
- os: linux
dist: trusty
compiler: clang++-libc++ compiler: clang++-libc++
env: TOOLSET=clang COMPILER=clang++-libc++ CXXSTD=03,11,14,1z env: TOOLSET=clang COMPILER=clang++-libc++ CXXSTD=11,14,1z VARIANT=release
addons: addons:
apt: apt:
packages: packages:
@@ -275,41 +261,17 @@ matrix:
- os: osx - os: osx
compiler: clang++ compiler: clang++
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z env: TOOLSET=clang COMPILER=clang++ CXXSTD=11,14,1z
- os: linux
env: CMAKE_TEST=1
script:
- mkdir __build__ && cd __build__
- cmake -DBOOST_ENABLE_CMAKE=1 -DBoost_VERBOSE=1 -DBOOST_INCLUDE_LIBRARIES=bind ..
- ctest --output-on-failure -R boost_bind
- os: linux - os: linux
compiler: g++
env: CMAKE_SUBDIR_TEST=1 env: CMAKE_SUBDIR_TEST=1
install:
- BOOST_BRANCH=develop
- if [ "$TRAVIS_BRANCH" = "master" ]; then BOOST_BRANCH=master; fi
- git clone -b $BOOST_BRANCH https://github.com/boostorg/assert.git ../assert
- git clone -b $BOOST_BRANCH https://github.com/boostorg/config.git ../config
- git clone -b $BOOST_BRANCH https://github.com/boostorg/core.git ../core
script: script:
- cd test/cmake_subdir_test && mkdir __build__ && cd __build__ - cd libs/bind/test/cmake_subdir_test && mkdir __build__ && cd __build__
- cmake .. - cmake ..
- cmake --build . - cmake --build .
- cmake --build . --target check - cmake --build . --target check
- os: linux
env: CMAKE_INSTALL_TEST=1
script:
- pip install --user cmake
- mkdir __build__ && cd __build__
- cmake -DBOOST_ENABLE_CMAKE=1 -DBoost_VERBOSE=1 -DBOOST_INCLUDE_LIBRARIES=bind -DCMAKE_INSTALL_PREFIX=~/.local ..
- cmake --build . --target install
- cd ../libs/bind/test/cmake_install_test && mkdir __build__ && cd __build__
- cmake -DCMAKE_INSTALL_PREFIX=~/.local ..
- cmake --build .
- cmake --build . --target check
install: install:
- BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true - BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
- cd .. - cd ..

View File

@@ -1,10 +1,12 @@
# Copyright 2018, 2019 Peter Dimov # Copyright 2018 Mike Dev
# Distributed under the Boost Software License, Version 1.0. # Distributed under the Boost Software License, Version 1.0.
# See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt # 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) # Partial (add_subdirectory only) and experimental CMake support
# Subject to change; please do not rely on the contents of this file yet
project(boost_bind VERSION "${BOOST_SUPERPROJECT_VERSION}" LANGUAGES CXX) cmake_minimum_required(VERSION 3.5)
project(BoostBind LANGUAGES CXX)
add_library(boost_bind INTERFACE) add_library(boost_bind INTERFACE)
add_library(Boost::bind ALIAS boost_bind) add_library(Boost::bind ALIAS boost_bind)
@@ -12,13 +14,7 @@ add_library(Boost::bind ALIAS boost_bind)
target_include_directories(boost_bind INTERFACE include) target_include_directories(boost_bind INTERFACE include)
target_link_libraries(boost_bind target_link_libraries(boost_bind
INTERFACE INTERFACE
Boost::config Boost::config
Boost::core Boost::core
) )
if(BUILD_TESTING)
add_subdirectory(test)
endif()

View File

@@ -1,4 +1,4 @@
# Copyright 2016-2020 Peter Dimov # Copyright 2016-2019 Peter Dimov
# Distributed under the Boost Software License, Version 1.0. # Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt) # (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
@@ -23,10 +23,6 @@ environment:
TOOLSET: msvc-14.1,clang-win TOOLSET: msvc-14.1,clang-win
CXXSTD: 14,17 CXXSTD: 14,17
ADDRESS_MODEL: 32,64 ADDRESS_MODEL: 32,64
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
TOOLSET: msvc-14.2
CXXSTD: 14,17
ADDRESS_MODEL: 32,64
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
ADDPATH: C:\cygwin\bin; ADDPATH: C:\cygwin\bin;
TOOLSET: gcc TOOLSET: gcc

View File

@@ -19,12 +19,10 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <iostream> #include <iostream>
#include <string> #include <string>
using namespace boost::placeholders;
std::string f(std::string const & x) std::string f(std::string const & x)
{ {
return "f(" + x + ")"; return "f(" + x + ")";

View File

@@ -17,12 +17,19 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/ref.hpp> #include <boost/ref.hpp>
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
#pragma warning(push, 3)
#endif
#include <iostream> #include <iostream>
#include <typeinfo> #include <typeinfo>
using namespace boost::placeholders; #if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
#pragma warning(pop)
#endif
// //

View File

@@ -11,7 +11,7 @@
[section Files] [section Files]
* [@../../../../boost/bind/bind.hpp boost/bind/bind.hpp] (main header) * [@../../../../boost/bind.hpp boost/bind.hpp] (main header)
* [@../../../../boost/bind/bind_cc.hpp boost/bind/bind_cc.hpp] (used by `bind.hpp`, do not include directly) * [@../../../../boost/bind/bind_cc.hpp boost/bind/bind_cc.hpp] (used by `bind.hpp`, do not include directly)
* [@../../../../boost/bind/bind_mf_cc.hpp boost/bind/bind_mf_cc.hpp] (used by `bind.hpp`, do not include directly) * [@../../../../boost/bind/bind_mf_cc.hpp boost/bind/bind_mf_cc.hpp] (used by `bind.hpp`, do not include directly)
* [@../../../../boost/bind/bind_template.hpp boost/bind/bind_template.hpp] (used by `bind.hpp`, do not include directly) * [@../../../../boost/bind/bind_template.hpp boost/bind/bind_template.hpp] (used by `bind.hpp`, do not include directly)
@@ -58,22 +58,22 @@ calling convention known as `__stdcall`. Borland VCL components use
`__fastcall`. Mac toolbox functions use a `pascal` calling convention. `__fastcall`. Mac toolbox functions use a `pascal` calling convention.
To use `bind` with `__stdcall` functions, `#define` the macro To use `bind` with `__stdcall` functions, `#define` the macro
`BOOST_BIND_ENABLE_STDCALL` before including `<boost/bind/bind.hpp>`. `BOOST_BIND_ENABLE_STDCALL` before including `<boost/bind.hpp>`.
To use `bind` with `__stdcall` member functions, `#define` the macro To use `bind` with `__stdcall` member functions, `#define` the macro
`BOOST_MEM_FN_ENABLE_STDCALL` before including `<boost/bind/bind.hpp>`. `BOOST_MEM_FN_ENABLE_STDCALL` before including `<boost/bind.hpp>`.
To use `bind` with `__fastcall` functions, `#define` the macro To use `bind` with `__fastcall` functions, `#define` the macro
`BOOST_BIND_ENABLE_FASTCALL` before including `<boost/bind/bind.hpp>`. `BOOST_BIND_ENABLE_FASTCALL` before including `<boost/bind.hpp>`.
To use `bind` with `__fastcall` member functions, `#define` the macro To use `bind` with `__fastcall` member functions, `#define` the macro
`BOOST_MEM_FN_ENABLE_FASTCALL` before including `<boost/bind/bind.hpp>`. `BOOST_MEM_FN_ENABLE_FASTCALL` before including `<boost/bind.hpp>`.
To use `bind` with `pascal` functions, `#define` the macro To use `bind` with `pascal` functions, `#define` the macro
`BOOST_BIND_ENABLE_PASCAL` before including `<boost/bind/bind.hpp>`. `BOOST_BIND_ENABLE_PASCAL` before including `<boost/bind.hpp>`.
To use `bind` with `__cdecl` member functions, `#define` the macro To use `bind` with `__cdecl` member functions, `#define` the macro
`BOOST_MEM_FN_ENABLE_CDECL` before including `<boost/bind/bind.hpp>`. `BOOST_MEM_FN_ENABLE_CDECL` before including `<boost/bind.hpp>`.
[*It is best to define these macros in the project options, via `-D` on the [*It is best to define these macros in the project options, via `-D` on the
command line, or as the first line in the translation unit (.cpp file) where command line, or as the first line in the translation unit (.cpp file) where

View File

@@ -181,7 +181,7 @@ and [@http://en.cppreference.com/w/cpp/utility/functional/binary_negate `std::bi
The `make_adaptable` function is defined in [@../../../../boost/bind/make_adaptable.hpp The `make_adaptable` function is defined in [@../../../../boost/bind/make_adaptable.hpp
`<boost/bind/make_adaptable.hpp>`], which must be included explicitly in `<boost/bind/make_adaptable.hpp>`], which must be included explicitly in
addition to [@../../../../boost/bind/bind.hpp `<boost/bind/bind.hpp>`]: addition to [@../../../../boost/bind.hpp `<boost/bind.hpp>`]:
#include <boost/bind/make_adaptable.hpp> #include <boost/bind/make_adaptable.hpp>
@@ -228,7 +228,7 @@ Workaround: remove the `const` qualifier from the argument.
[section MSVC specific: `using boost::bind;`] [section MSVC specific: `using boost::bind;`]
On MSVC (up to version 7.0), when `boost::bind` is brought into scope with an On MSVC (up to version 7.0), when `boostbind` is brought into scope with an
using declaration: using declaration:
using boost::bind; using boost::bind;

View File

@@ -916,7 +916,7 @@
<p> <p>
The <code class="computeroutput"><span class="identifier">make_adaptable</span></code> function The <code class="computeroutput"><span class="identifier">make_adaptable</span></code> function
is defined in <a href="../../../../boost/bind/make_adaptable.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bind</span><span class="special">/</span><span class="identifier">make_adaptable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>, is defined in <a href="../../../../boost/bind/make_adaptable.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bind</span><span class="special">/</span><span class="identifier">make_adaptable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>,
which must be included explicitly in addition to <a href="../../../../boost/bind/bind.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bind</span><span class="special">/</span><span class="identifier">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>: which must be included explicitly in addition to <a href="../../../../boost/bind.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>:
</p> </p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bind</span><span class="special">/</span><span class="identifier">make_adaptable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span> <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bind</span><span class="special">/</span><span class="identifier">make_adaptable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
@@ -974,7 +974,7 @@
specific: <code class="computeroutput"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">;</span></code></a> specific: <code class="computeroutput"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">;</span></code></a>
</h3></div></div></div> </h3></div></div></div>
<p> <p>
On MSVC (up to version 7.0), when <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span></code> On MSVC (up to version 7.0), when <code class="computeroutput"><span class="identifier">boostbind</span></code>
is brought into scope with an using declaration: is brought into scope with an using declaration:
</p> </p>
<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">;</span> <pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">;</span>
@@ -1305,8 +1305,8 @@
</h3></div></div></div> </h3></div></div></div>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"> <li class="listitem">
<a href="../../../../boost/bind/bind.hpp" target="_top">boost/bind/bind.hpp</a> <a href="../../../../boost/bind.hpp" target="_top">boost/bind.hpp</a> (main
(main header) header)
</li> </li>
<li class="listitem"> <li class="listitem">
<a href="../../../../boost/bind/bind_cc.hpp" target="_top">boost/bind/bind_cc.hpp</a> <a href="../../../../boost/bind/bind_cc.hpp" target="_top">boost/bind/bind_cc.hpp</a>
@@ -1427,29 +1427,29 @@
<p> <p>
To use <code class="computeroutput"><span class="identifier">bind</span></code> with <code class="computeroutput"><span class="identifier">__stdcall</span></code> functions, <code class="computeroutput"><span class="preprocessor">#define</span></code> To use <code class="computeroutput"><span class="identifier">bind</span></code> with <code class="computeroutput"><span class="identifier">__stdcall</span></code> functions, <code class="computeroutput"><span class="preprocessor">#define</span></code>
the macro <code class="computeroutput"><span class="identifier">BOOST_BIND_ENABLE_STDCALL</span></code> the macro <code class="computeroutput"><span class="identifier">BOOST_BIND_ENABLE_STDCALL</span></code>
before including <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bind</span><span class="special">/</span><span class="identifier">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>. before including <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
</p> </p>
<p> <p>
To use <code class="computeroutput"><span class="identifier">bind</span></code> with <code class="computeroutput"><span class="identifier">__stdcall</span></code> member functions, <code class="computeroutput"><span class="preprocessor">#define</span></code> the macro <code class="computeroutput"><span class="identifier">BOOST_MEM_FN_ENABLE_STDCALL</span></code> To use <code class="computeroutput"><span class="identifier">bind</span></code> with <code class="computeroutput"><span class="identifier">__stdcall</span></code> member functions, <code class="computeroutput"><span class="preprocessor">#define</span></code> the macro <code class="computeroutput"><span class="identifier">BOOST_MEM_FN_ENABLE_STDCALL</span></code>
before including <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bind</span><span class="special">/</span><span class="identifier">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>. before including <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
</p> </p>
<p> <p>
To use <code class="computeroutput"><span class="identifier">bind</span></code> with <code class="computeroutput"><span class="identifier">__fastcall</span></code> functions, <code class="computeroutput"><span class="preprocessor">#define</span></code> To use <code class="computeroutput"><span class="identifier">bind</span></code> with <code class="computeroutput"><span class="identifier">__fastcall</span></code> functions, <code class="computeroutput"><span class="preprocessor">#define</span></code>
the macro <code class="computeroutput"><span class="identifier">BOOST_BIND_ENABLE_FASTCALL</span></code> the macro <code class="computeroutput"><span class="identifier">BOOST_BIND_ENABLE_FASTCALL</span></code>
before including <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bind</span><span class="special">/</span><span class="identifier">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>. before including <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
</p> </p>
<p> <p>
To use <code class="computeroutput"><span class="identifier">bind</span></code> with <code class="computeroutput"><span class="identifier">__fastcall</span></code> member functions, <code class="computeroutput"><span class="preprocessor">#define</span></code> the macro <code class="computeroutput"><span class="identifier">BOOST_MEM_FN_ENABLE_FASTCALL</span></code> To use <code class="computeroutput"><span class="identifier">bind</span></code> with <code class="computeroutput"><span class="identifier">__fastcall</span></code> member functions, <code class="computeroutput"><span class="preprocessor">#define</span></code> the macro <code class="computeroutput"><span class="identifier">BOOST_MEM_FN_ENABLE_FASTCALL</span></code>
before including <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bind</span><span class="special">/</span><span class="identifier">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>. before including <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
</p> </p>
<p> <p>
To use <code class="computeroutput"><span class="identifier">bind</span></code> with <code class="computeroutput"><span class="identifier">pascal</span></code> functions, <code class="computeroutput"><span class="preprocessor">#define</span></code> To use <code class="computeroutput"><span class="identifier">bind</span></code> with <code class="computeroutput"><span class="identifier">pascal</span></code> functions, <code class="computeroutput"><span class="preprocessor">#define</span></code>
the macro <code class="computeroutput"><span class="identifier">BOOST_BIND_ENABLE_PASCAL</span></code> the macro <code class="computeroutput"><span class="identifier">BOOST_BIND_ENABLE_PASCAL</span></code>
before including <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bind</span><span class="special">/</span><span class="identifier">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>. before including <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
</p> </p>
<p> <p>
To use <code class="computeroutput"><span class="identifier">bind</span></code> with <code class="computeroutput"><span class="identifier">__cdecl</span></code> member functions, <code class="computeroutput"><span class="preprocessor">#define</span></code> the macro <code class="computeroutput"><span class="identifier">BOOST_MEM_FN_ENABLE_CDECL</span></code> To use <code class="computeroutput"><span class="identifier">bind</span></code> with <code class="computeroutput"><span class="identifier">__cdecl</span></code> member functions, <code class="computeroutput"><span class="preprocessor">#define</span></code> the macro <code class="computeroutput"><span class="identifier">BOOST_MEM_FN_ENABLE_CDECL</span></code>
before including <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bind</span><span class="special">/</span><span class="identifier">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>. before including <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
</p> </p>
<p> <p>
<span class="bold"><strong>It is best to define these macros in the project options, <span class="bold"><strong>It is best to define these macros in the project options,
@@ -1543,7 +1543,7 @@
</div> </div>
</div> </div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: December 13, 2019 at 18:24:18 GMT</small></p></td> <td align="left"><p><small>Last revised: July 07, 2017 at 11:19:28 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td> <td align="right"><div class="copyright-footer"></div></td>
</tr></table> </tr></table>
<hr> <hr>

View File

@@ -543,7 +543,7 @@
</div> </div>
</div> </div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: December 13, 2019 at 18:24:22 GMT</small></p></td> <td align="left"><p><small>Last revised: July 07, 2017 at 11:19:31 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td> <td align="right"><div class="copyright-footer"></div></td>
</tr></table> </tr></table>
<hr> <hr>

View File

@@ -7,6 +7,7 @@
# pragma once # pragma once
#endif #endif
//
// bind.hpp - binds function objects to arguments // bind.hpp - binds function objects to arguments
// //
// Copyright (c) 2009, 2015 Peter Dimov // Copyright (c) 2009, 2015 Peter Dimov
@@ -17,31 +18,11 @@
// //
// See http://www.boost.org/libs/bind/bind.html for documentation. // See http://www.boost.org/libs/bind/bind.html for documentation.
// //
// For backward compatibility, this header includes
// <boost/bind/bind.hpp> and then imports the placeholders _1, _2,
// _3, ... into the global namespace. Definitions in the global
// namespace are not a good practice and this use is deprecated.
// Please switch to including <boost/bind/bind.hpp> directly,
// adding the using directive locally where appropriate.
// Alternatively, the existing behavior may be preserved by defining
// the macro BOOST_BIND_GLOBAL_PLACEHOLDERS.
#include <boost/bind/bind.hpp> #include <boost/bind/bind.hpp>
#include <boost/config/pragma_message.hpp>
#ifndef BOOST_BIND_NO_PLACEHOLDERS #ifndef BOOST_BIND_NO_PLACEHOLDERS
#if !defined(BOOST_BIND_GLOBAL_PLACEHOLDERS)
BOOST_PRAGMA_MESSAGE(
"The practice of declaring the Bind placeholders (_1, _2, ...) "
"in the global namespace is deprecated. Please use "
"<boost/bind/bind.hpp> + using namespace boost::placeholders, "
"or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior."
)
#endif
#if defined(BOOST_CLANG) #if defined(BOOST_CLANG)
# pragma clang diagnostic push # pragma clang diagnostic push
# if __has_warning("-Wheader-hygiene") # if __has_warning("-Wheader-hygiene")

View File

@@ -21,6 +21,23 @@
// See http://www.boost.org/libs/bind/bind.html for documentation. // See http://www.boost.org/libs/bind/bind.html for documentation.
// //
#if 1
#include <boost/ref.hpp>
#include <boost/mem_fn.hpp>
#include <functional>
namespace boost
{
using std::bind;
namespace placeholders = std::placeholders;
} // namespace boost
#else
#include <boost/config.hpp> #include <boost/config.hpp>
#include <boost/ref.hpp> #include <boost/ref.hpp>
#include <boost/mem_fn.hpp> #include <boost/mem_fn.hpp>
@@ -38,7 +55,7 @@
// Borland-specific bug, visit_each() silently fails to produce code // Borland-specific bug, visit_each() silently fails to produce code
#if defined(BOOST_BORLANDC) #if defined(__BORLANDC__)
# define BOOST_BIND_VISIT_EACH boost::visit_each # define BOOST_BIND_VISIT_EACH boost::visit_each
#else #else
# define BOOST_BIND_VISIT_EACH visit_each # define BOOST_BIND_VISIT_EACH visit_each
@@ -1422,7 +1439,7 @@ public:
template<class V> void accept( V & v ) const template<class V> void accept( V & v ) const
{ {
#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( BOOST_BORLANDC ) #if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( __BORLANDC__ )
using boost::visit_each; using boost::visit_each;
#endif #endif
@@ -1559,7 +1576,7 @@ namespace _bi
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || (__SUNPRO_CC >= 0x530) #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || (__SUNPRO_CC >= 0x530)
#if defined( BOOST_BORLANDC ) && BOOST_WORKAROUND( BOOST_BORLANDC, BOOST_TESTED_AT(0x582) ) #if defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x582) )
template<class T> struct add_value template<class T> struct add_value
{ {
@@ -1811,7 +1828,7 @@ BOOST_BIND_OPERATOR( >=, greater_equal )
// visit_each, ADL // visit_each, ADL
#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( BOOST_BORLANDC ) \ #if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( __BORLANDC__ ) \
&& !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3) && !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3)
template<class V, class T> void visit_each( V & v, value<T> const & t, int ) template<class V, class T> void visit_each( V & v, value<T> const & t, int )
@@ -1831,7 +1848,7 @@ template<class V, class R, class F, class L> void visit_each( V & v, bind_t<R, F
// visit_each, no ADL // visit_each, no ADL
#if defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) || defined( BOOST_BORLANDC ) \ #if defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) || defined( __BORLANDC__ ) \
|| (defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3) || (defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3)
template<class V, class T> void visit_each( V & v, _bi::value<T> const & t, int ) template<class V, class T> void visit_each( V & v, _bi::value<T> const & t, int )
@@ -2245,7 +2262,7 @@ template<class F, class A1, class A2, class A3, class A4, class A5, class A6, cl
// data member pointers // data member pointers
#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ #if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
|| ( defined(BOOST_BORLANDC) && BOOST_WORKAROUND( BOOST_BORLANDC, BOOST_TESTED_AT( 0x620 ) ) ) || ( defined(__BORLANDC__) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x620 ) ) )
template<class R, class T, class A1> template<class R, class T, class A1>
_bi::bind_t< R, _mfi::dm<R, T>, typename _bi::list_av_1<A1>::type > _bi::bind_t< R, _mfi::dm<R, T>, typename _bi::list_av_1<A1>::type >
@@ -2362,4 +2379,6 @@ BOOST_BIND( M T::*f, A1 a1 )
# pragma warning(pop) # pragma warning(pop)
#endif #endif
#endif
#endif // #ifndef BOOST_BIND_BIND_HPP_INCLUDED #endif // #ifndef BOOST_BIND_BIND_HPP_INCLUDED

View File

@@ -325,7 +325,7 @@
template<class V> void accept(V & v) const template<class V> void accept(V & v) const
{ {
#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( BOOST_BORLANDC ) #if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( __BORLANDC__ )
using boost::visit_each; using boost::visit_each;

View File

@@ -21,6 +21,19 @@
// See http://www.boost.org/libs/bind/mem_fn.html for documentation. // See http://www.boost.org/libs/bind/mem_fn.html for documentation.
// //
#if 1
#include <functional>
namespace boost
{
using std::mem_fn;
} // namespace boost
#else
#include <boost/config.hpp> #include <boost/config.hpp>
#include <boost/get_pointer.hpp> #include <boost/get_pointer.hpp>
#include <boost/detail/workaround.hpp> #include <boost/detail/workaround.hpp>
@@ -264,31 +277,21 @@ namespace _mfi
#define BOOST_MEM_FN_NAME(X) X #define BOOST_MEM_FN_NAME(X) X
#define BOOST_MEM_FN_CC #define BOOST_MEM_FN_CC
#define BOOST_MEM_FN_NOEXCEPT
#include <boost/bind/mem_fn_cc.hpp> #include <boost/bind/mem_fn_cc.hpp>
#if defined( __cpp_noexcept_function_type ) || defined( _NOEXCEPT_TYPES_SUPPORTED )
# undef BOOST_MEM_FN_NOEXCEPT
# define BOOST_MEM_FN_NOEXCEPT noexcept
# include <boost/bind/mem_fn_cc.hpp>
#endif
#undef BOOST_MEM_FN_NAME #undef BOOST_MEM_FN_NAME
#undef BOOST_MEM_FN_CC #undef BOOST_MEM_FN_CC
#undef BOOST_MEM_FN_NOEXCEPT
#if defined(BOOST_MEM_FN_ENABLE_CDECL) && !defined(_M_X64) #if defined(BOOST_MEM_FN_ENABLE_CDECL) && !defined(_M_X64)
#define BOOST_MEM_FN_NAME(X) X##_cdecl #define BOOST_MEM_FN_NAME(X) X##_cdecl
#define BOOST_MEM_FN_CC __cdecl #define BOOST_MEM_FN_CC __cdecl
#define BOOST_MEM_FN_NOEXCEPT
#include <boost/bind/mem_fn_cc.hpp> #include <boost/bind/mem_fn_cc.hpp>
#undef BOOST_MEM_FN_NAME #undef BOOST_MEM_FN_NAME
#undef BOOST_MEM_FN_CC #undef BOOST_MEM_FN_CC
#undef BOOST_MEM_FN_NOEXCEPT
#endif #endif
@@ -296,13 +299,11 @@ namespace _mfi
#define BOOST_MEM_FN_NAME(X) X##_stdcall #define BOOST_MEM_FN_NAME(X) X##_stdcall
#define BOOST_MEM_FN_CC __stdcall #define BOOST_MEM_FN_CC __stdcall
#define BOOST_MEM_FN_NOEXCEPT
#include <boost/bind/mem_fn_cc.hpp> #include <boost/bind/mem_fn_cc.hpp>
#undef BOOST_MEM_FN_NAME #undef BOOST_MEM_FN_NAME
#undef BOOST_MEM_FN_CC #undef BOOST_MEM_FN_CC
#undef BOOST_MEM_FN_NOEXCEPT
#endif #endif
@@ -310,13 +311,11 @@ namespace _mfi
#define BOOST_MEM_FN_NAME(X) X##_fastcall #define BOOST_MEM_FN_NAME(X) X##_fastcall
#define BOOST_MEM_FN_CC __fastcall #define BOOST_MEM_FN_CC __fastcall
#define BOOST_MEM_FN_NOEXCEPT
#include <boost/bind/mem_fn_cc.hpp> #include <boost/bind/mem_fn_cc.hpp>
#undef BOOST_MEM_FN_NAME #undef BOOST_MEM_FN_NAME
#undef BOOST_MEM_FN_CC #undef BOOST_MEM_FN_CC
#undef BOOST_MEM_FN_NOEXCEPT
#endif #endif
@@ -400,4 +399,6 @@ template<class R, class T> _mfi::dm<R, T> mem_fn(R T::*f)
} // namespace boost } // namespace boost
#endif
#endif // #ifndef BOOST_BIND_MEM_FN_HPP_INCLUDED #endif // #ifndef BOOST_BIND_MEM_FN_HPP_INCLUDED

View File

@@ -12,92 +12,92 @@
// See http://www.boost.org/libs/bind/mem_fn.html for documentation. // See http://www.boost.org/libs/bind/mem_fn.html for documentation.
// //
template<class R, class T> _mfi::BOOST_MEM_FN_NAME(mf0)<R, T> mem_fn(R (BOOST_MEM_FN_CC T::*f) () BOOST_MEM_FN_NOEXCEPT) template<class R, class T> _mfi::BOOST_MEM_FN_NAME(mf0)<R, T> mem_fn(R (BOOST_MEM_FN_CC T::*f) ())
{ {
return _mfi::BOOST_MEM_FN_NAME(mf0)<R, T>(f); return _mfi::BOOST_MEM_FN_NAME(mf0)<R, T>(f);
} }
template<class R, class T> _mfi::BOOST_MEM_FN_NAME(cmf0)<R, T> mem_fn(R (BOOST_MEM_FN_CC T::*f) () const BOOST_MEM_FN_NOEXCEPT) template<class R, class T> _mfi::BOOST_MEM_FN_NAME(cmf0)<R, T> mem_fn(R (BOOST_MEM_FN_CC T::*f) () const)
{ {
return _mfi::BOOST_MEM_FN_NAME(cmf0)<R, T>(f); return _mfi::BOOST_MEM_FN_NAME(cmf0)<R, T>(f);
} }
template<class R, class T, class A1> _mfi::BOOST_MEM_FN_NAME(mf1)<R, T, A1> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1) BOOST_MEM_FN_NOEXCEPT) template<class R, class T, class A1> _mfi::BOOST_MEM_FN_NAME(mf1)<R, T, A1> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1))
{ {
return _mfi::BOOST_MEM_FN_NAME(mf1)<R, T, A1>(f); return _mfi::BOOST_MEM_FN_NAME(mf1)<R, T, A1>(f);
} }
template<class R, class T, class A1> _mfi::BOOST_MEM_FN_NAME(cmf1)<R, T, A1> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1) const BOOST_MEM_FN_NOEXCEPT) template<class R, class T, class A1> _mfi::BOOST_MEM_FN_NAME(cmf1)<R, T, A1> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1) const)
{ {
return _mfi::BOOST_MEM_FN_NAME(cmf1)<R, T, A1>(f); return _mfi::BOOST_MEM_FN_NAME(cmf1)<R, T, A1>(f);
} }
template<class R, class T, class A1, class A2> _mfi::BOOST_MEM_FN_NAME(mf2)<R, T, A1, A2> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2) BOOST_MEM_FN_NOEXCEPT) template<class R, class T, class A1, class A2> _mfi::BOOST_MEM_FN_NAME(mf2)<R, T, A1, A2> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2))
{ {
return _mfi::BOOST_MEM_FN_NAME(mf2)<R, T, A1, A2>(f); return _mfi::BOOST_MEM_FN_NAME(mf2)<R, T, A1, A2>(f);
} }
template<class R, class T, class A1, class A2> _mfi::BOOST_MEM_FN_NAME(cmf2)<R, T, A1, A2> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2) const BOOST_MEM_FN_NOEXCEPT) template<class R, class T, class A1, class A2> _mfi::BOOST_MEM_FN_NAME(cmf2)<R, T, A1, A2> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2) const)
{ {
return _mfi::BOOST_MEM_FN_NAME(cmf2)<R, T, A1, A2>(f); return _mfi::BOOST_MEM_FN_NAME(cmf2)<R, T, A1, A2>(f);
} }
template<class R, class T, class A1, class A2, class A3> _mfi::BOOST_MEM_FN_NAME(mf3)<R, T, A1, A2, A3> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3) BOOST_MEM_FN_NOEXCEPT) template<class R, class T, class A1, class A2, class A3> _mfi::BOOST_MEM_FN_NAME(mf3)<R, T, A1, A2, A3> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3))
{ {
return _mfi::BOOST_MEM_FN_NAME(mf3)<R, T, A1, A2, A3>(f); return _mfi::BOOST_MEM_FN_NAME(mf3)<R, T, A1, A2, A3>(f);
} }
template<class R, class T, class A1, class A2, class A3> _mfi::BOOST_MEM_FN_NAME(cmf3)<R, T, A1, A2, A3> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3) const BOOST_MEM_FN_NOEXCEPT) template<class R, class T, class A1, class A2, class A3> _mfi::BOOST_MEM_FN_NAME(cmf3)<R, T, A1, A2, A3> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3) const)
{ {
return _mfi::BOOST_MEM_FN_NAME(cmf3)<R, T, A1, A2, A3>(f); return _mfi::BOOST_MEM_FN_NAME(cmf3)<R, T, A1, A2, A3>(f);
} }
template<class R, class T, class A1, class A2, class A3, class A4> _mfi::BOOST_MEM_FN_NAME(mf4)<R, T, A1, A2, A3, A4> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4) BOOST_MEM_FN_NOEXCEPT) template<class R, class T, class A1, class A2, class A3, class A4> _mfi::BOOST_MEM_FN_NAME(mf4)<R, T, A1, A2, A3, A4> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4))
{ {
return _mfi::BOOST_MEM_FN_NAME(mf4)<R, T, A1, A2, A3, A4>(f); return _mfi::BOOST_MEM_FN_NAME(mf4)<R, T, A1, A2, A3, A4>(f);
} }
template<class R, class T, class A1, class A2, class A3, class A4> _mfi::BOOST_MEM_FN_NAME(cmf4)<R, T, A1, A2, A3, A4> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4) const BOOST_MEM_FN_NOEXCEPT) template<class R, class T, class A1, class A2, class A3, class A4> _mfi::BOOST_MEM_FN_NAME(cmf4)<R, T, A1, A2, A3, A4> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4) const)
{ {
return _mfi::BOOST_MEM_FN_NAME(cmf4)<R, T, A1, A2, A3, A4>(f); return _mfi::BOOST_MEM_FN_NAME(cmf4)<R, T, A1, A2, A3, A4>(f);
} }
template<class R, class T, class A1, class A2, class A3, class A4, class A5> _mfi::BOOST_MEM_FN_NAME(mf5)<R, T, A1, A2, A3, A4, A5> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5) BOOST_MEM_FN_NOEXCEPT) template<class R, class T, class A1, class A2, class A3, class A4, class A5> _mfi::BOOST_MEM_FN_NAME(mf5)<R, T, A1, A2, A3, A4, A5> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5))
{ {
return _mfi::BOOST_MEM_FN_NAME(mf5)<R, T, A1, A2, A3, A4, A5>(f); return _mfi::BOOST_MEM_FN_NAME(mf5)<R, T, A1, A2, A3, A4, A5>(f);
} }
template<class R, class T, class A1, class A2, class A3, class A4, class A5> _mfi::BOOST_MEM_FN_NAME(cmf5)<R, T, A1, A2, A3, A4, A5> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5) const BOOST_MEM_FN_NOEXCEPT) template<class R, class T, class A1, class A2, class A3, class A4, class A5> _mfi::BOOST_MEM_FN_NAME(cmf5)<R, T, A1, A2, A3, A4, A5> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5) const)
{ {
return _mfi::BOOST_MEM_FN_NAME(cmf5)<R, T, A1, A2, A3, A4, A5>(f); return _mfi::BOOST_MEM_FN_NAME(cmf5)<R, T, A1, A2, A3, A4, A5>(f);
} }
template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6> _mfi::BOOST_MEM_FN_NAME(mf6)<R, T, A1, A2, A3, A4, A5, A6> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6) BOOST_MEM_FN_NOEXCEPT) template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6> _mfi::BOOST_MEM_FN_NAME(mf6)<R, T, A1, A2, A3, A4, A5, A6> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6))
{ {
return _mfi::BOOST_MEM_FN_NAME(mf6)<R, T, A1, A2, A3, A4, A5, A6>(f); return _mfi::BOOST_MEM_FN_NAME(mf6)<R, T, A1, A2, A3, A4, A5, A6>(f);
} }
template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6> _mfi::BOOST_MEM_FN_NAME(cmf6)<R, T, A1, A2, A3, A4, A5, A6> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6) const BOOST_MEM_FN_NOEXCEPT) template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6> _mfi::BOOST_MEM_FN_NAME(cmf6)<R, T, A1, A2, A3, A4, A5, A6> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6) const)
{ {
return _mfi::BOOST_MEM_FN_NAME(cmf6)<R, T, A1, A2, A3, A4, A5, A6>(f); return _mfi::BOOST_MEM_FN_NAME(cmf6)<R, T, A1, A2, A3, A4, A5, A6>(f);
} }
template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7> _mfi::BOOST_MEM_FN_NAME(mf7)<R, T, A1, A2, A3, A4, A5, A6, A7> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7) BOOST_MEM_FN_NOEXCEPT) template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7> _mfi::BOOST_MEM_FN_NAME(mf7)<R, T, A1, A2, A3, A4, A5, A6, A7> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7))
{ {
return _mfi::BOOST_MEM_FN_NAME(mf7)<R, T, A1, A2, A3, A4, A5, A6, A7>(f); return _mfi::BOOST_MEM_FN_NAME(mf7)<R, T, A1, A2, A3, A4, A5, A6, A7>(f);
} }
template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7> _mfi::BOOST_MEM_FN_NAME(cmf7)<R, T, A1, A2, A3, A4, A5, A6, A7> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7) const BOOST_MEM_FN_NOEXCEPT) template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7> _mfi::BOOST_MEM_FN_NAME(cmf7)<R, T, A1, A2, A3, A4, A5, A6, A7> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7) const)
{ {
return _mfi::BOOST_MEM_FN_NAME(cmf7)<R, T, A1, A2, A3, A4, A5, A6, A7>(f); return _mfi::BOOST_MEM_FN_NAME(cmf7)<R, T, A1, A2, A3, A4, A5, A6, A7>(f);
} }
template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> _mfi::BOOST_MEM_FN_NAME(mf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7, A8) BOOST_MEM_FN_NOEXCEPT) template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> _mfi::BOOST_MEM_FN_NAME(mf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7, A8))
{ {
return _mfi::BOOST_MEM_FN_NAME(mf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8>(f); return _mfi::BOOST_MEM_FN_NAME(mf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8>(f);
} }
template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> _mfi::BOOST_MEM_FN_NAME(cmf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7, A8) const BOOST_MEM_FN_NOEXCEPT) template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> _mfi::BOOST_MEM_FN_NAME(cmf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8> mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7, A8) const)
{ {
return _mfi::BOOST_MEM_FN_NAME(cmf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8>(f); return _mfi::BOOST_MEM_FN_NAME(cmf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8>(f);
} }

View File

@@ -29,7 +29,7 @@ namespace boost
namespace placeholders namespace placeholders
{ {
#if defined(BOOST_BORLANDC) || defined(__GNUC__) && (__GNUC__ < 4) #if defined(__BORLANDC__) || defined(__GNUC__) && (__GNUC__ < 4)
inline boost::arg<1> _1() { return boost::arg<1>(); } inline boost::arg<1> _1() { return boost::arg<1>(); }
inline boost::arg<2> _2() { return boost::arg<2>(); } inline boost::arg<2> _2() { return boost::arg<2>(); }

View File

@@ -49,7 +49,7 @@ template<class A1> struct storage1
A1 a1_; A1 a1_;
}; };
#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( BOOST_BORLANDC ) #if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( __BORLANDC__ )
template<int I> struct storage1< boost::arg<I> > template<int I> struct storage1< boost::arg<I> >
{ {

View File

@@ -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.v2 LINK_LIBRARIES Boost::bind Boost::core Boost::function Boost::smart_ptr)
endif()

View File

@@ -72,5 +72,3 @@ run mem_fn_fastcall_test.cpp ;
run mem_fn_stdcall_test.cpp ; run mem_fn_stdcall_test.cpp ;
run bind_noexcept_test.cpp ; run bind_noexcept_test.cpp ;
run bind_noexcept_mf_test.cpp ; run bind_noexcept_mf_test.cpp ;
run global_placeholders.cpp ;
run mem_fn_noexcept_test.cpp ;

View File

@@ -17,12 +17,19 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.hpp>
using namespace boost::placeholders; #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
#include <boost/detail/lightweight_test.hpp>
bool f( bool x ) bool f( bool x )
{ {

View File

@@ -27,10 +27,19 @@ int main()
#define BOOST_MEM_FN_ENABLE_CDECL #define BOOST_MEM_FN_ENABLE_CDECL
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.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
#include <boost/detail/lightweight_test.hpp>
struct X struct X
{ {

View File

@@ -18,11 +18,20 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/ref.hpp> #include <boost/ref.hpp>
#include <boost/core/lightweight_test.hpp>
using namespace boost::placeholders; #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
#include <boost/detail/lightweight_test.hpp>
// //

View File

@@ -17,10 +17,19 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.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
#include <boost/detail/lightweight_test.hpp>
struct X struct X
{ {

View File

@@ -17,13 +17,20 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.hpp>
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
#pragma warning(push, 3)
#endif
#include <iostream>
#include <string> #include <string>
using namespace boost::placeholders; #if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
#pragma warning(pop)
#endif
// #include <boost/detail/lightweight_test.hpp>
struct X struct X
{ {

View File

@@ -17,14 +17,21 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.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
#include <boost/detail/lightweight_test.hpp>
#include <utility> #include <utility>
using namespace boost::placeholders;
//
int main() int main()
{ {
typedef std::pair<int, int> pair_type; typedef std::pair<int, int> pair_type;

View File

@@ -17,12 +17,19 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.hpp>
using namespace boost::placeholders; #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
#include <boost/detail/lightweight_test.hpp>
struct X struct X
{ {

View File

@@ -17,13 +17,9 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/function_equal.hpp> #include <boost/function_equal.hpp>
#include <boost/core/lightweight_test.hpp> #include <boost/detail/lightweight_test.hpp>
using namespace boost::placeholders;
//
void f( int ) void f( int )
{ {

View File

@@ -17,14 +17,10 @@
// http://www.boost.org/LICENSE_1_0.txt // http://www.boost.org/LICENSE_1_0.txt
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/function_equal.hpp> #include <boost/function_equal.hpp>
#include <boost/weak_ptr.hpp> #include <boost/weak_ptr.hpp>
#include <boost/core/lightweight_test.hpp> #include <boost/detail/lightweight_test.hpp>
//
using namespace boost::placeholders;
int f( boost::weak_ptr<void> wp ) int f( boost::weak_ptr<void> wp )
{ {

View File

@@ -17,13 +17,24 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/ref.hpp> #include <boost/ref.hpp>
#include <boost/core/lightweight_test.hpp>
using namespace boost::placeholders; #ifdef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
# include <boost/function_equal.hpp>
#endif
// #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
#include <boost/detail/lightweight_test.hpp>
struct X struct X
{ {
@@ -135,11 +146,23 @@ void fv_9(X, X, X, X, X, X, X, X, X)
template<class F> void test_eq(F f1, F f2) template<class F> void test_eq(F f1, F f2)
{ {
#ifdef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
using boost::function_equal;
#endif
BOOST_TEST( function_equal( f1, f2 ) ); BOOST_TEST( function_equal( f1, f2 ) );
} }
template<class F> void test_ne(F f1, F f2) template<class F> void test_ne(F f1, F f2)
{ {
#ifdef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
using boost::function_equal;
#endif
BOOST_TEST( !function_equal( f1, f2 ) ); BOOST_TEST( !function_equal( f1, f2 ) );
} }

View File

@@ -27,10 +27,19 @@ int main()
#define BOOST_MEM_FN_ENABLE_FASTCALL #define BOOST_MEM_FN_ENABLE_FASTCALL
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.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
#include <boost/detail/lightweight_test.hpp>
struct X struct X
{ {

View File

@@ -27,10 +27,19 @@ int main()
#define BOOST_BIND_ENABLE_FASTCALL #define BOOST_BIND_ENABLE_FASTCALL
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.hpp>
using namespace boost::placeholders; #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
#include <boost/detail/lightweight_test.hpp>
// //

View File

@@ -17,10 +17,19 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.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
#include <boost/detail/lightweight_test.hpp>
long global_result; long global_result;

View File

@@ -17,10 +17,19 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.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
#include <boost/detail/lightweight_test.hpp>
struct X struct X
{ {

View File

@@ -10,11 +10,9 @@
// http://www.boost.org/LICENSE_1_0.txt // http://www.boost.org/LICENSE_1_0.txt
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/function.hpp> #include <boost/function.hpp>
#include <boost/core/lightweight_test.hpp> #include <boost/detail/lightweight_test.hpp>
using namespace boost::placeholders;
// //

View File

@@ -26,13 +26,11 @@ int main()
# endif # endif
#endif #endif
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/function.hpp> #include <boost/function.hpp>
#include <boost/core/lightweight_test.hpp> #include <boost/detail/lightweight_test.hpp>
#include <memory> #include <memory>
using namespace boost::placeholders;
// //
void fv1( std::auto_ptr<int> p1 ) void fv1( std::auto_ptr<int> p1 )

View File

@@ -17,11 +17,19 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
#include <boost/function.hpp> #pragma warning(push, 3)
#include <boost/core/lightweight_test.hpp> #endif
// #include <iostream>
#include <boost/function.hpp>
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
#pragma warning(pop)
#endif
#include <boost/bind.hpp>
#include <boost/detail/lightweight_test.hpp>
int f( int x ) int f( int x )
{ {

View File

@@ -10,10 +10,8 @@
// http://www.boost.org/LICENSE_1_0.txt // http://www.boost.org/LICENSE_1_0.txt
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.hpp> #include <boost/detail/lightweight_test.hpp>
using namespace boost::placeholders;
// //

View File

@@ -10,10 +10,8 @@
// http://www.boost.org/LICENSE_1_0.txt // http://www.boost.org/LICENSE_1_0.txt
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.hpp> #include <boost/detail/lightweight_test.hpp>
using namespace boost::placeholders;
// //

View File

@@ -8,7 +8,7 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
template<class T> void value(); template<class T> void value();

View File

@@ -17,10 +17,19 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.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
#include <boost/detail/lightweight_test.hpp>
struct X struct X
{ {

View File

@@ -10,12 +10,10 @@
// http://www.boost.org/LICENSE_1_0.txt // http://www.boost.org/LICENSE_1_0.txt
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/make_shared.hpp> #include <boost/make_shared.hpp>
#include <boost/function.hpp> #include <boost/function.hpp>
#include <boost/core/lightweight_test.hpp> #include <boost/detail/lightweight_test.hpp>
using namespace boost::placeholders;
// //

View File

@@ -8,7 +8,7 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/ref.hpp> #include <boost/ref.hpp>
#include <boost/core/lightweight_test.hpp> #include <boost/core/lightweight_test.hpp>
#include <boost/config.hpp> #include <boost/config.hpp>

View File

@@ -8,12 +8,10 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.hpp> #include <boost/core/lightweight_test.hpp>
#include <boost/config.hpp> #include <boost/config.hpp>
using namespace boost::placeholders;
#if defined(BOOST_NO_CXX11_NOEXCEPT) #if defined(BOOST_NO_CXX11_NOEXCEPT)
int main() int main()

View File

@@ -17,12 +17,19 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.hpp>
using namespace boost::placeholders; #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
#include <boost/detail/lightweight_test.hpp>
template<class F, class A1, class R> void test( F f, A1 a1, R r ) template<class F, class A1, class R> void test( F f, A1 a1, R r )
{ {

View File

@@ -18,8 +18,19 @@
// See accompanying file LICENSE_1_0.txt or copy at // 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)
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.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
#include <boost/detail/lightweight_test.hpp>
// //

View File

@@ -8,13 +8,9 @@
// http://www.boost.org/LICENSE_1_0.txt // http://www.boost.org/LICENSE_1_0.txt
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/ref.hpp> #include <boost/ref.hpp>
#include <boost/core/lightweight_test.hpp> #include <boost/detail/lightweight_test.hpp>
using namespace boost::placeholders;
//
struct X struct X
{ {

View File

@@ -17,12 +17,19 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.hpp>
using namespace boost::placeholders; #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
#include <boost/detail/lightweight_test.hpp>
int f( int x ) int f( int x )
{ {

View File

@@ -17,11 +17,20 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.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
#include <boost/detail/lightweight_test.hpp>
#include <boost/shared_ptr.hpp>
struct X struct X
{ {

View File

@@ -18,10 +18,19 @@
// See accompanying file LICENSE_1_0.txt or copy at // 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)
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.hpp>
using namespace boost::placeholders; #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
#include <boost/detail/lightweight_test.hpp>
// //

View File

@@ -17,10 +17,19 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.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
#include <boost/detail/lightweight_test.hpp>
class X class X
{ {

View File

@@ -27,10 +27,19 @@ int main()
#define BOOST_MEM_FN_ENABLE_STDCALL #define BOOST_MEM_FN_ENABLE_STDCALL
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.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
#include <boost/detail/lightweight_test.hpp>
struct X struct X
{ {

View File

@@ -29,10 +29,19 @@ int main()
#define BOOST_BIND_ENABLE_STDCALL #define BOOST_BIND_ENABLE_STDCALL
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.hpp>
using namespace boost::placeholders; #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
#include <boost/detail/lightweight_test.hpp>
// //

View File

@@ -18,11 +18,20 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/ref.hpp> #include <boost/ref.hpp>
#include <boost/core/lightweight_test.hpp>
using namespace boost::placeholders; #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
#include <boost/detail/lightweight_test.hpp>
// //

View File

@@ -10,10 +10,8 @@
// http://www.boost.org/LICENSE_1_0.txt // http://www.boost.org/LICENSE_1_0.txt
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.hpp> #include <boost/detail/lightweight_test.hpp>
using namespace boost::placeholders;
// //

View File

@@ -17,9 +17,17 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #include <boost/bind.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
class X class X
{ {

View File

@@ -18,12 +18,10 @@ int main()
// http://www.boost.org/LICENSE_1_0.txt // http://www.boost.org/LICENSE_1_0.txt
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.hpp> #include <boost/detail/lightweight_test.hpp>
#include <memory> #include <memory>
using namespace boost::placeholders;
// //
void fv1( std::unique_ptr<int> p1 ) void fv1( std::unique_ptr<int> p1 )

View File

@@ -15,14 +15,21 @@
// accompanying file LICENSE_1_0.txt or copy at // 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)
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/visit_each.hpp> #include <boost/visit_each.hpp>
#include <boost/core/lightweight_test.hpp>
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
# pragma warning(push, 3)
#endif
#include <iostream>
#include <typeinfo> #include <typeinfo>
using namespace boost::placeholders; #if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
# pragma warning(pop)
#endif
// #include <boost/detail/lightweight_test.hpp>
struct visitor struct visitor
{ {

View File

@@ -18,11 +18,20 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/ref.hpp> #include <boost/ref.hpp>
#include <boost/core/lightweight_test.hpp>
using namespace boost::placeholders; #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
#include <boost/detail/lightweight_test.hpp>
// //

View File

@@ -18,9 +18,20 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/ref.hpp> #include <boost/ref.hpp>
#include <boost/core/lightweight_test.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
#include <boost/detail/lightweight_test.hpp>
// //

View File

@@ -18,11 +18,20 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/ref.hpp> #include <boost/ref.hpp>
#include <boost/core/lightweight_test.hpp>
using namespace boost::placeholders; #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
#include <boost/detail/lightweight_test.hpp>
// //

View File

@@ -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_bind REQUIRED)
find_package(boost_core REQUIRED)
add_executable(quick ../quick.cpp)
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>)

View File

@@ -2,7 +2,7 @@
# Distributed under the Boost Software License, Version 1.0. # Distributed under the Boost Software License, Version 1.0.
# See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt # 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) cmake_minimum_required(VERSION 3.5)
project(cmake_subdir_test LANGUAGES CXX) project(cmake_subdir_test LANGUAGES CXX)

View File

@@ -1,22 +0,0 @@
// Copyright 2017, 2020 Peter Dimov
// Distributed under the Boost Software License, Version 1.0.
// https://www.boost.org/LICENSE_1_0.txt
#include <boost/bind.hpp>
#include <boost/core/lightweight_test.hpp>
//
int f( int a, int b, int c )
{
return a + 10 * b + 100 * c;
}
int main()
{
int const i = 1;
BOOST_TEST_EQ( boost::bind( f, _1, 2, _2 )( i, 3 ), 321 );
return boost::report_errors();
}

View File

@@ -1,169 +0,0 @@
// Copyright 2001, 2002, 2020 Peter Dimov
// Distributed under the Boost Software License, Version 1.0.
// https://www.boost.org/LICENSE_1_0.txt)
#include <boost/mem_fn.hpp>
#include <boost/shared_ptr.hpp>
#include <iostream>
#if defined(BOOST_NO_CXX11_NOEXCEPT)
int main()
{
}
#else
struct X
{
mutable unsigned int hash;
X(): hash(0) {}
int f0() noexcept { f1(17); return 0; }
int g0() const noexcept { g1(17); return 0; }
int f1(int a1) noexcept { hash = (hash * 17041 + a1) % 32768; return 0; }
int g1(int a1) const noexcept { hash = (hash * 17041 + a1 * 2) % 32768; return 0; }
int f2(int a1, int a2) noexcept { f1(a1); f1(a2); return 0; }
int g2(int a1, int a2) const noexcept { g1(a1); g1(a2); return 0; }
int f3(int a1, int a2, int a3) noexcept { f2(a1, a2); f1(a3); return 0; }
int g3(int a1, int a2, int a3) const noexcept { g2(a1, a2); g1(a3); return 0; }
int f4(int a1, int a2, int a3, int a4) noexcept { f3(a1, a2, a3); f1(a4); return 0; }
int g4(int a1, int a2, int a3, int a4) const noexcept { g3(a1, a2, a3); g1(a4); return 0; }
int f5(int a1, int a2, int a3, int a4, int a5) noexcept { f4(a1, a2, a3, a4); f1(a5); return 0; }
int g5(int a1, int a2, int a3, int a4, int a5) const noexcept { g4(a1, a2, a3, a4); g1(a5); return 0; }
int f6(int a1, int a2, int a3, int a4, int a5, int a6) noexcept { f5(a1, a2, a3, a4, a5); f1(a6); return 0; }
int g6(int a1, int a2, int a3, int a4, int a5, int a6) const noexcept { g5(a1, a2, a3, a4, a5); g1(a6); return 0; }
int f7(int a1, int a2, int a3, int a4, int a5, int a6, int a7) noexcept { f6(a1, a2, a3, a4, a5, a6); f1(a7); return 0; }
int g7(int a1, int a2, int a3, int a4, int a5, int a6, int a7) const noexcept { g6(a1, a2, a3, a4, a5, a6); g1(a7); return 0; }
int f8(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8) noexcept { f7(a1, a2, a3, a4, a5, a6, a7); f1(a8); return 0; }
int g8(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8) const noexcept { g7(a1, a2, a3, a4, a5, a6, a7); g1(a8); return 0; }
};
int detect_errors(bool x)
{
if(x)
{
std::cerr << "no errors detected.\n";
return 0;
}
else
{
std::cerr << "test failed.\n";
return 1;
}
}
int main()
{
using boost::mem_fn;
X x;
X const & rcx = x;
X const * pcx = &x;
boost::shared_ptr<X> sp(new X);
mem_fn(&X::f0)(x);
mem_fn(&X::f0)(&x);
mem_fn(&X::f0)(sp);
mem_fn(&X::g0)(x);
mem_fn(&X::g0)(rcx);
mem_fn(&X::g0)(&x);
mem_fn(&X::g0)(pcx);
mem_fn(&X::g0)(sp);
mem_fn(&X::f1)(x, 1);
mem_fn(&X::f1)(&x, 1);
mem_fn(&X::f1)(sp, 1);
mem_fn(&X::g1)(x, 1);
mem_fn(&X::g1)(rcx, 1);
mem_fn(&X::g1)(&x, 1);
mem_fn(&X::g1)(pcx, 1);
mem_fn(&X::g1)(sp, 1);
mem_fn(&X::f2)(x, 1, 2);
mem_fn(&X::f2)(&x, 1, 2);
mem_fn(&X::f2)(sp, 1, 2);
mem_fn(&X::g2)(x, 1, 2);
mem_fn(&X::g2)(rcx, 1, 2);
mem_fn(&X::g2)(&x, 1, 2);
mem_fn(&X::g2)(pcx, 1, 2);
mem_fn(&X::g2)(sp, 1, 2);
mem_fn(&X::f3)(x, 1, 2, 3);
mem_fn(&X::f3)(&x, 1, 2, 3);
mem_fn(&X::f3)(sp, 1, 2, 3);
mem_fn(&X::g3)(x, 1, 2, 3);
mem_fn(&X::g3)(rcx, 1, 2, 3);
mem_fn(&X::g3)(&x, 1, 2, 3);
mem_fn(&X::g3)(pcx, 1, 2, 3);
mem_fn(&X::g3)(sp, 1, 2, 3);
mem_fn(&X::f4)(x, 1, 2, 3, 4);
mem_fn(&X::f4)(&x, 1, 2, 3, 4);
mem_fn(&X::f4)(sp, 1, 2, 3, 4);
mem_fn(&X::g4)(x, 1, 2, 3, 4);
mem_fn(&X::g4)(rcx, 1, 2, 3, 4);
mem_fn(&X::g4)(&x, 1, 2, 3, 4);
mem_fn(&X::g4)(pcx, 1, 2, 3, 4);
mem_fn(&X::g4)(sp, 1, 2, 3, 4);
mem_fn(&X::f5)(x, 1, 2, 3, 4, 5);
mem_fn(&X::f5)(&x, 1, 2, 3, 4, 5);
mem_fn(&X::f5)(sp, 1, 2, 3, 4, 5);
mem_fn(&X::g5)(x, 1, 2, 3, 4, 5);
mem_fn(&X::g5)(rcx, 1, 2, 3, 4, 5);
mem_fn(&X::g5)(&x, 1, 2, 3, 4, 5);
mem_fn(&X::g5)(pcx, 1, 2, 3, 4, 5);
mem_fn(&X::g5)(sp, 1, 2, 3, 4, 5);
mem_fn(&X::f6)(x, 1, 2, 3, 4, 5, 6);
mem_fn(&X::f6)(&x, 1, 2, 3, 4, 5, 6);
mem_fn(&X::f6)(sp, 1, 2, 3, 4, 5, 6);
mem_fn(&X::g6)(x, 1, 2, 3, 4, 5, 6);
mem_fn(&X::g6)(rcx, 1, 2, 3, 4, 5, 6);
mem_fn(&X::g6)(&x, 1, 2, 3, 4, 5, 6);
mem_fn(&X::g6)(pcx, 1, 2, 3, 4, 5, 6);
mem_fn(&X::g6)(sp, 1, 2, 3, 4, 5, 6);
mem_fn(&X::f7)(x, 1, 2, 3, 4, 5, 6, 7);
mem_fn(&X::f7)(&x, 1, 2, 3, 4, 5, 6, 7);
mem_fn(&X::f7)(sp, 1, 2, 3, 4, 5, 6, 7);
mem_fn(&X::g7)(x, 1, 2, 3, 4, 5, 6, 7);
mem_fn(&X::g7)(rcx, 1, 2, 3, 4, 5, 6, 7);
mem_fn(&X::g7)(&x, 1, 2, 3, 4, 5, 6, 7);
mem_fn(&X::g7)(pcx, 1, 2, 3, 4, 5, 6, 7);
mem_fn(&X::g7)(sp, 1, 2, 3, 4, 5, 6, 7);
mem_fn(&X::f8)(x, 1, 2, 3, 4, 5, 6, 7, 8);
mem_fn(&X::f8)(&x, 1, 2, 3, 4, 5, 6, 7, 8);
mem_fn(&X::f8)(sp, 1, 2, 3, 4, 5, 6, 7, 8);
mem_fn(&X::g8)(x, 1, 2, 3, 4, 5, 6, 7, 8);
mem_fn(&X::g8)(rcx, 1, 2, 3, 4, 5, 6, 7, 8);
mem_fn(&X::g8)(&x, 1, 2, 3, 4, 5, 6, 7, 8);
mem_fn(&X::g8)(pcx, 1, 2, 3, 4, 5, 6, 7, 8);
mem_fn(&X::g8)(sp, 1, 2, 3, 4, 5, 6, 7, 8);
return detect_errors(mem_fn(&X::hash)(x) == 17610 && mem_fn(&X::hash)(sp) == 2155);
}
#endif

View File

@@ -83,7 +83,7 @@ public:
} }
}; };
#if defined( BOOST_BORLANDC ) && BOOST_WORKAROUND( BOOST_BORLANDC, BOOST_TESTED_AT( 0x620 ) ) #if defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x620 ) )
namespace boost namespace boost
{ {
#endif #endif
@@ -93,7 +93,7 @@ template<class T> T * get_pointer( Y< T > const & y )
return y.get(); return y.get();
} }
#if defined( BOOST_BORLANDC ) && BOOST_WORKAROUND( BOOST_BORLANDC, BOOST_TESTED_AT( 0x620 ) ) #if defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x620 ) )
} // namespace boost } // namespace boost
#endif #endif

View File

@@ -18,14 +18,10 @@ int main()
#else #else
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.hpp> #include <boost/core/lightweight_test.hpp>
#include <functional> #include <functional>
using namespace boost::placeholders;
//
namespace std namespace std
{ {

View File

@@ -8,12 +8,9 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
#include <boost/bind/protect.hpp> #include <boost/bind/protect.hpp>
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.hpp>
using namespace boost::placeholders; #include <boost/detail/lightweight_test.hpp>
//
int f(int x) int f(int x)
{ {

View File

@@ -1,5 +1,5 @@
// //
// quick.cpp - a quick test for boost/bind/bind.hpp // quick.cpp - a quick test for boost/bind.hpp
// //
// Copyright 2017 Peter Dimov // Copyright 2017 Peter Dimov
// //
@@ -9,13 +9,9 @@
// http://www.boost.org/LICENSE_1_0.txt // http://www.boost.org/LICENSE_1_0.txt
// //
#include <boost/bind/bind.hpp> #include <boost/bind.hpp>
#include <boost/core/lightweight_test.hpp> #include <boost/core/lightweight_test.hpp>
using namespace boost::placeholders;
//
int f( int a, int b, int c ) int f( int a, int b, int c )
{ {
return a + 10 * b + 100 * c; return a + 10 * b + 100 * c;