These specializations were deprecated in C++20, and libc++-19 now generates
deprecation warnings when using std::codecvt<char16_t> and
std::codecvt<char32_t> in C++20 and later modes.
address::from_string functions in Boost.ASIO were deprecated and removed.
Use make_address free functions as a replacement.
Fixes https://github.com/boostorg/log/issues/239.
This replaces boost::thread and most mutexes and condition variables with
std equivalents. It also adds support for std lock types to the strictest_lock
type trait.
This significantly, although not completely, reduces the dependency on
Boost.Thread.
Refs https://github.com/boostorg/log/issues/232.
The default behavior of windres.exe to read the output of the
preprocessor is using popen. However, the popen implementation may be
buggy on some non-English hosts, which would cause a compilation error
like this:
windres.exe: can't open file `page:': Invalid argument
Fix by adding '--use-temp-file' option and windres.exe will use a
temporary file to read instead of using opoen.
Signed-off-by: ik <hello_ik@outlook.com>
The intrinsic is supported since VS2010 SP1, which is below our minimum
supported MSVC version. The intrinsic is the proper way to detect
support for AVX register state by the OS instead of the undocumented
GetEnabledExtendedFeatures WinAPI function.
This makes these sections better exposed to an impatient reader, as
that information is useful for better understanding of the rest of
the docs.
Also extracted installation sections to a separate file.
Related to https://github.com/boostorg/log/issues/226.
Boost.ASIO does not compile in C++11 mode on gcc prior to 5 as it uses
std::align.
Clang prior to 16 does not support libstdc++13 that is installed in
GHA ubuntu-22.04 image by default in C++20 mode. Use libstdc++11
instead.
Boost.Log supports compilers that do not qualify as C++11 compilers
for Boost.Regex, even if they are compiling in C++11 mode. In that
case, we still need to link with Boost.Regex v4 prebuilt library.
For more recent compilers, Boost.Regex v5 is used, and that is
a header-only library. This commit removes linking with Boost.Regex
when this is detected at configure time.
Note that only Boost.Build is updated. CMake doesn't need to be
updated since even header-only libraries need to be listed as
dependencies.
Closes https://github.com/boostorg/log/pull/219.
This allows to test compilation when using the latest Windows APIs. In
particular, this allows to test that linking works when Boost.Atomic uses
WaitOnAddress API.