Compare commits

..

5 Commits

Author SHA1 Message Date
Peter Dimov
abc1bf9b4a Extend GCC 11 workaround to GCC 12 as well 2022-05-30 18:44:07 +03:00
Peter Dimov
e665d1e9af Disable -Wdeprecated-declarations for GCC 12 2022-05-30 18:18:09 +03:00
Peter Dimov
f7e42dc08f Update ci.yml 2022-05-30 17:35:22 +03:00
Peter Dimov
5e1a4f49aa Remove msvc-14.3 from appveyor.yml (in GHA); use clang-win from 2019 2021-12-17 02:52:13 +02:00
Peter Dimov
e36de553dd Update README 2021-12-16 06:43:57 +02:00
6 changed files with 60 additions and 30 deletions

View File

@@ -20,33 +20,48 @@ jobs:
- toolset: gcc-4.8 - toolset: gcc-4.8
cxxstd: "03,11" cxxstd: "03,11"
os: ubuntu-18.04 os: ubuntu-18.04
install: g++-4.8 install: g++-4.8-multilib
address-model: 32,64
- toolset: gcc-5 - toolset: gcc-5
cxxstd: "03,11,14,1z" cxxstd: "03,11,14,1z"
os: ubuntu-18.04 os: ubuntu-18.04
install: g++-5 install: g++-5-multilib
address-model: 32,64
- toolset: gcc-6 - toolset: gcc-6
cxxstd: "03,11,14,1z" cxxstd: "03,11,14,1z"
os: ubuntu-18.04 os: ubuntu-18.04
install: g++-6 install: g++-6-multilib
address-model: 32,64
- toolset: gcc-7 - toolset: gcc-7
cxxstd: "03,11,14,17" cxxstd: "03,11,14,17"
os: ubuntu-18.04 os: ubuntu-18.04
install: g++-7-multilib
address-model: 32,64
- toolset: gcc-8 - toolset: gcc-8
cxxstd: "03,11,14,17,2a" cxxstd: "03,11,14,17,2a"
os: ubuntu-18.04 os: ubuntu-18.04
install: g++-8 install: g++-8-multilib
address-model: 32,64
- toolset: gcc-9 - toolset: gcc-9
cxxstd: "03,11,14,17,2a" cxxstd: "03,11,14,17,2a"
os: ubuntu-20.04 os: ubuntu-20.04
install: g++-9-multilib
address-model: 32,64
- toolset: gcc-10 - toolset: gcc-10
cxxstd: "03,11,14,17,2a" cxxstd: "03,11,14,17,2a"
os: ubuntu-20.04 os: ubuntu-20.04
install: g++-10 install: g++-10-multilib
address-model: 32,64
- toolset: gcc-11 - toolset: gcc-11
cxxstd: "03,11,14,17,2a" cxxstd: "03,11,14,17,20"
os: ubuntu-20.04 os: ubuntu-20.04
install: g++-11 install: g++-11-multilib
address-model: 32,64
- toolset: gcc-12
cxxstd: "03,11,14,17,20"
os: ubuntu-22.04
install: g++-12-multilib
address-model: 32,64
- toolset: clang - toolset: clang
compiler: clang++-3.9 compiler: clang++-3.9
cxxstd: "03,11,14" cxxstd: "03,11,14"
@@ -92,8 +107,18 @@ jobs:
os: ubuntu-20.04 os: ubuntu-20.04
- toolset: clang - toolset: clang
compiler: clang++-12 compiler: clang++-12
cxxstd: "03,11,14,17,2a" cxxstd: "03,11,14,17,20"
os: ubuntu-20.04 os: ubuntu-20.04
- toolset: clang
compiler: clang++-13
cxxstd: "03,11,14,17,20"
os: ubuntu-22.04
install: clang-13
- toolset: clang
compiler: clang++-14
cxxstd: "03,11,14,17,20"
os: ubuntu-22.04
install: clang-14
- toolset: clang - toolset: clang
cxxstd: "03,11,14,17,2a" cxxstd: "03,11,14,17,2a"
os: macos-10.15 os: macos-10.15
@@ -137,7 +162,8 @@ jobs:
- name: Run tests - name: Run tests
run: | run: |
cd ../boost-root cd ../boost-root
./b2 -j3 libs/$LIBRARY/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} variant=debug,release export ADDRMD=${{matrix.address-model}}
./b2 -j3 libs/$LIBRARY/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} ${ADDRMD:+address-model=$ADDRMD} variant=debug,release
windows: windows:
strategy: strategy:
@@ -145,18 +171,18 @@ jobs:
matrix: matrix:
include: include:
- toolset: msvc-14.0 - toolset: msvc-14.0
cxxstd: "14" cxxstd: 14,latest
addrmd: 32,64 addrmd: 32,64
os: windows-2019 os: windows-2019
- toolset: msvc-14.1
cxxstd: "14,17,latest"
addrmd: 32,64
os: windows-2016
- toolset: msvc-14.2 - toolset: msvc-14.2
cxxstd: "14,17,latest" cxxstd: "14,17,20,latest"
addrmd: 32,64 addrmd: 32,64
os: windows-2019 os: windows-2019
- toolset: msvc-14.3 - toolset: msvc-14.3
cxxstd: "14,17,20,latest"
addrmd: 32,64
os: windows-2022
- toolset: clang-win
cxxstd: "14,17,latest" cxxstd: "14,17,latest"
addrmd: 32,64 addrmd: 32,64
os: windows-2022 os: windows-2022
@@ -196,7 +222,7 @@ jobs:
shell: cmd shell: cmd
run: | run: |
cd ../boost-root cd ../boost-root
b2 -j3 libs/%LIBRARY%/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} address-model=${{matrix.addrmd}} variant=debug,release b2 -j3 libs/%LIBRARY%/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} address-model=${{matrix.addrmd}} variant=debug,release embed-manifest-via=linker
posix-cmake-subdir: posix-cmake-subdir:
strategy: strategy:

View File

@@ -7,11 +7,11 @@ into the C++11 standard as [`std::function`](https://en.cppreference.com/w/cpp/u
## Currently supported compilers ## Currently supported compilers
* g++ 4.4 or later * g++ 4.8 or later
* clang++ 3.3 or later * clang++ 3.9 or later
* Visual Studio 2005-2017 * Visual Studio 2005-2022
Tested on [Travis](https://travis-ci.org/boostorg/function/) and [Appveyor](https://ci.appveyor.com/project/pdimov/function/). Tested on [Github Actions](https://github.com/boostorg/function/actions) and [Appveyor](https://ci.appveyor.com/project/pdimov/function/).
## License ## License

View File

@@ -24,14 +24,10 @@ environment:
TOOLSET: msvc-14.1 TOOLSET: msvc-14.1
CXXSTD: 14,17 CXXSTD: 14,17
ADDRMD: 32,64 ADDRMD: 32,64
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
TOOLSET: clang-win
CXXSTD: 14,17
ADDRMD: 64
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
TOOLSET: msvc-14.2 TOOLSET: clang-win
CXXSTD: 14,17,latest CXXSTD: 14,17,latest
ADDRMD: 32,64 ADDRMD: 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
@@ -67,4 +63,4 @@ test_script:
- PATH=%ADDPATH%%PATH% - PATH=%ADDPATH%%PATH%
- if not "%CXXSTD%" == "" set CXXSTD=cxxstd=%CXXSTD% - if not "%CXXSTD%" == "" set CXXSTD=cxxstd=%CXXSTD%
- if not "%ADDRMD%" == "" set ADDRMD=address-model=%ADDRMD% - if not "%ADDRMD%" == "" set ADDRMD=address-model=%ADDRMD%
- b2 -j3 libs/function/test toolset=%TOOLSET% %CXXSTD% %ADDRMD% variant=debug,release - b2 -j3 libs/function/test toolset=%TOOLSET% %CXXSTD% %ADDRMD% variant=debug,release embed-manifest-via=linker

View File

@@ -1010,14 +1010,14 @@ namespace boost {
# pragma GCC diagnostic pop # pragma GCC diagnostic pop
# endif # endif
} else } else
#if defined(BOOST_GCC) && (__GNUC__ == 11) #if defined(BOOST_GCC) && (__GNUC__ >= 11)
# pragma GCC diagnostic push # pragma GCC diagnostic push
// False positive in GCC 11 for empty function objects (function_n_test.cpp:673) // False positive in GCC 11/12 for empty function objects (function_n_test.cpp:673)
# pragma GCC diagnostic ignored "-Wmaybe-uninitialized" # pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
#endif #endif
get_vtable()->base.manager(f.functor, this->functor, get_vtable()->base.manager(f.functor, this->functor,
boost::detail::function::move_functor_tag); boost::detail::function::move_functor_tag);
#if defined(BOOST_GCC) && (__GNUC__ == 11) #if defined(BOOST_GCC) && (__GNUC__ >= 11)
# pragma GCC diagnostic pop # pragma GCC diagnostic pop
#endif #endif
f.vtable = 0; f.vtable = 0;

View File

@@ -14,6 +14,10 @@
# endif # endif
#endif #endif
#if defined(__GNUC__) && __GNUC__ >= 12
# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#endif
#include <boost/function.hpp> #include <boost/function.hpp>
#include <iostream> #include <iostream>
#include <functional> #include <functional>

View File

@@ -14,6 +14,10 @@
# endif # endif
#endif #endif
#if defined(__GNUC__) && __GNUC__ >= 12
# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#endif
#include <boost/function.hpp> #include <boost/function.hpp>
#include <iostream> #include <iostream>
#include <functional> #include <functional>