Compare commits

...

11 Commits

Author SHA1 Message Date
Peter Dimov
2797f0dc33 Only issue the deprecation message when BOOST_BIND_GLOBAL_PLACEHOLDERS isn't defined 2020-02-16 18:13:43 +02:00
Peter Dimov
5612ee45e5 Add test using global placeholders 2020-02-16 18:13:15 +02:00
Peter Dimov
2b33c45769 Merge branch 'develop' into feature/deprecate-bind-hpp 2020-02-16 17:55:39 +02:00
Peter Dimov
3bdf7e313e Test Bind's install support, not Core's 2020-01-05 03:30:40 +02:00
Peter Dimov
cb49b5adb8 cd into the correct directory for cmake_subdir_test 2020-01-04 20:41:55 +02:00
Peter Dimov
eb7ccfc6d6 Add CMake tests, instal support 2020-01-04 20:25:15 +02:00
Peter Dimov
418b01b85d Update Travis to Xenial 2020-01-01 21:05:01 +02:00
Peter Dimov
ebd86ec558 Update header name in documentation 2019-12-13 20:25:46 +02:00
Peter Dimov
0eb9e9061b Remove some outdated constructs from tests 2019-12-13 19:47:07 +02:00
Peter Dimov
66ddaf88e1 Update tests to use boost/bind/bind.hpp instead of boost/bind.hpp 2019-12-13 19:34:30 +02:00
Peter Dimov
5c21b6a525 Add deprecation notice to boost/bind.hpp 2019-12-13 19:16:51 +02:00
58 changed files with 322 additions and 433 deletions

View File

@@ -6,7 +6,7 @@ language: cpp
sudo: false
dist: trusty
dist: xenial
branches:
only:
@@ -133,6 +133,7 @@ matrix:
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11
- os: linux
dist: trusty
compiler: /usr/bin/clang++
env: TOOLSET=clang COMPILER=/usr/bin/clang++ CXXSTD=03,11
addons:
@@ -141,6 +142,7 @@ matrix:
- clang-3.3
- os: linux
dist: trusty
compiler: /usr/bin/clang++
env: TOOLSET=clang COMPILER=/usr/bin/clang++ CXXSTD=03,11
addons:
@@ -155,10 +157,8 @@ matrix:
apt:
packages:
- clang-3.5
- libstdc++-4.9-dev
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.5
- os: linux
compiler: clang++-3.6
@@ -169,7 +169,6 @@ matrix:
- clang-3.6
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.6
- os: linux
compiler: clang++-3.7
@@ -180,7 +179,6 @@ matrix:
- clang-3.7
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.7
- os: linux
compiler: clang++-3.8
@@ -189,10 +187,8 @@ matrix:
apt:
packages:
- clang-3.8
- libstdc++-4.9-dev
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.8
- os: linux
compiler: clang++-3.9
@@ -201,10 +197,8 @@ matrix:
apt:
packages:
- clang-3.9
- libstdc++-4.9-dev
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.9
- os: linux
compiler: clang++-4.0
@@ -215,7 +209,6 @@ matrix:
- clang-4.0
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-4.0
- os: linux
compiler: clang++-5.0
@@ -226,7 +219,6 @@ matrix:
- clang-5.0
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-5.0
- os: linux
compiler: clang++-6.0
@@ -237,7 +229,6 @@ matrix:
- clang-6.0
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-6.0
- os: linux
compiler: clang++-7
@@ -248,7 +239,7 @@ matrix:
- clang-7
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-7
- llvm-toolchain-xenial-7
- os: linux
compiler: clang++-8
@@ -259,11 +250,24 @@ matrix:
- clang-8
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-8
- llvm-toolchain-xenial-8
- 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++
env: TOOLSET=clang COMPILER=clang++-libc++ CXXSTD=03,11,14,1z VARIANT=release
env: TOOLSET=clang COMPILER=clang++-libc++ CXXSTD=03,11,14,1z
addons:
apt:
packages:
@@ -274,14 +278,37 @@ matrix:
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
- os: linux
compiler: g++
env: CMAKE_SUBDIR_TEST=1
env: CMAKE_TEST=1
script:
- cd libs/bind/test/cmake_subdir_test && mkdir __build__ && cd __build__
- 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
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:
- cd test/cmake_subdir_test && mkdir __build__ && cd __build__
- cmake ..
- cmake --build .
- cmake --build . --target check
- os: linux
env: CMAKE_INSTALL_TEST=1
script:
- mkdir __build__ && cd __build__
- cmake -DBOOST_ENABLE_CMAKE=1 -DBoost_VERBOSE=1 -DBOOST_INCLUDE_LIBRARIES="assert;bind;config;core" -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:
- BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
- cd ..

View File

@@ -1,12 +1,10 @@
# Copyright 2018 Mike Dev
# 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
# Partial (add_subdirectory only) and experimental CMake support
# Subject to change; please do not rely on the contents of this file yet
cmake_minimum_required(VERSION 3.5...3.16)
cmake_minimum_required(VERSION 3.5)
project(BoostBind LANGUAGES CXX)
project(boost_bind VERSION "${BOOST_SUPERPROJECT_VERSION}" LANGUAGES CXX)
add_library(boost_bind INTERFACE)
add_library(Boost::bind ALIAS boost_bind)
@@ -14,7 +12,20 @@ add_library(Boost::bind ALIAS boost_bind)
target_include_directories(boost_bind INTERFACE include)
target_link_libraries(boost_bind
INTERFACE
Boost::config
Boost::core
INTERFACE
Boost::config
Boost::core
)
if(BOOST_SUPERPROJECT_VERSION)
include(BoostInstall)
boost_install(TARGETS boost_bind HEADER_DIRECTORY include/)
endif()
if(BUILD_TESTING)
add_subdirectory(test)
endif()

View File

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

View File

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

View File

@@ -11,7 +11,7 @@
[section Files]
* [@../../../../boost/bind.hpp boost/bind.hpp] (main header)
* [@../../../../boost/bind/bind.hpp boost/bind/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_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)
@@ -58,22 +58,22 @@ calling convention known as `__stdcall`. Borland VCL components use
`__fastcall`. Mac toolbox functions use a `pascal` calling convention.
To use `bind` with `__stdcall` functions, `#define` the macro
`BOOST_BIND_ENABLE_STDCALL` before including `<boost/bind.hpp>`.
`BOOST_BIND_ENABLE_STDCALL` before including `<boost/bind/bind.hpp>`.
To use `bind` with `__stdcall` member functions, `#define` the macro
`BOOST_MEM_FN_ENABLE_STDCALL` before including `<boost/bind.hpp>`.
`BOOST_MEM_FN_ENABLE_STDCALL` before including `<boost/bind/bind.hpp>`.
To use `bind` with `__fastcall` functions, `#define` the macro
`BOOST_BIND_ENABLE_FASTCALL` before including `<boost/bind.hpp>`.
`BOOST_BIND_ENABLE_FASTCALL` before including `<boost/bind/bind.hpp>`.
To use `bind` with `__fastcall` member functions, `#define` the macro
`BOOST_MEM_FN_ENABLE_FASTCALL` before including `<boost/bind.hpp>`.
`BOOST_MEM_FN_ENABLE_FASTCALL` before including `<boost/bind/bind.hpp>`.
To use `bind` with `pascal` functions, `#define` the macro
`BOOST_BIND_ENABLE_PASCAL` before including `<boost/bind.hpp>`.
`BOOST_BIND_ENABLE_PASCAL` before including `<boost/bind/bind.hpp>`.
To use `bind` with `__cdecl` member functions, `#define` the macro
`BOOST_MEM_FN_ENABLE_CDECL` before including `<boost/bind.hpp>`.
`BOOST_MEM_FN_ENABLE_CDECL` before including `<boost/bind/bind.hpp>`.
[*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

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
`<boost/bind/make_adaptable.hpp>`], which must be included explicitly in
addition to [@../../../../boost/bind.hpp `<boost/bind.hpp>`]:
addition to [@../../../../boost/bind/bind.hpp `<boost/bind/bind.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;`]
On MSVC (up to version 7.0), when `boostbind` is brought into scope with an
On MSVC (up to version 7.0), when `boost::bind` is brought into scope with an
using declaration:
using boost::bind;

View File

@@ -916,7 +916,7 @@
<p>
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>,
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>:
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>:
</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>
@@ -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>
</h3></div></div></div>
<p>
On MSVC (up to version 7.0), when <code class="computeroutput"><span class="identifier">boostbind</span></code>
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>
is brought into scope with an using declaration:
</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>
@@ -1305,8 +1305,8 @@
</h3></div></div></div>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<a href="../../../../boost/bind.hpp" target="_top">boost/bind.hpp</a> (main
header)
<a href="../../../../boost/bind/bind.hpp" target="_top">boost/bind/bind.hpp</a>
(main header)
</li>
<li class="listitem">
<a href="../../../../boost/bind/bind_cc.hpp" target="_top">boost/bind/bind_cc.hpp</a>
@@ -1427,29 +1427,29 @@
<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>
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">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">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
</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>
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>.
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>.
</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>
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">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">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
</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>
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>.
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>.
</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>
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">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">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
</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>
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>.
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>.
</p>
<p>
<span class="bold"><strong>It is best to define these macros in the project options,
@@ -1543,7 +1543,7 @@
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: July 07, 2017 at 11:19:28 GMT</small></p></td>
<td align="left"><p><small>Last revised: December 13, 2019 at 18:24:18 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>

View File

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

View File

@@ -7,7 +7,6 @@
# pragma once
#endif
//
// bind.hpp - binds function objects to arguments
//
// Copyright (c) 2009, 2015 Peter Dimov
@@ -18,11 +17,31 @@
//
// 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/config/pragma_message.hpp>
#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)
# pragma clang diagnostic push
# if __has_warning("-Wheader-hygiene")

11
test/CMakeLists.txt Normal file
View File

@@ -0,0 +1,11 @@
# 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,3 +72,4 @@ run mem_fn_fastcall_test.cpp ;
run mem_fn_stdcall_test.cpp ;
run bind_noexcept_test.cpp ;
run bind_noexcept_mf_test.cpp ;
run global_placeholders.cpp ;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -17,24 +17,13 @@
// http://www.boost.org/LICENSE_1_0.txt)
//
#include <boost/bind.hpp>
#include <boost/bind/bind.hpp>
#include <boost/ref.hpp>
#include <boost/core/lightweight_test.hpp>
#ifdef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
# include <boost/function_equal.hpp>
#endif
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
{
@@ -146,23 +135,11 @@ void fv_9(X, X, X, X, X, X, X, X, X)
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 ) );
}
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 ) );
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -17,19 +17,11 @@
// http://www.boost.org/LICENSE_1_0.txt)
//
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
#pragma warning(push, 3)
#endif
#include <iostream>
#include <boost/bind/bind.hpp>
#include <boost/function.hpp>
#include <boost/core/lightweight_test.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 )
{

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -17,19 +17,12 @@
// http://www.boost.org/LICENSE_1_0.txt)
//
#include <boost/bind.hpp>
#include <boost/bind/bind.hpp>
#include <boost/core/lightweight_test.hpp>
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
#pragma warning(push, 3)
#endif
using namespace boost::placeholders;
#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 )
{

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,18 @@
# 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.
# See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
cmake_minimum_required(VERSION 3.5)
cmake_minimum_required(VERSION 3.5...3.16)
project(cmake_subdir_test LANGUAGES CXX)

View File

@@ -0,0 +1,22 @@
// 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

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

View File

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

View File

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