On 12/8/2019 7:20 AM, Tom Kent via Boost wrote:
On Sat, Dec 7, 2019 at 12:51 AM Daniela Engert
wrote: Hi Tom!
Am 06.12.2019 um 22:35 schrieb Tom Kent via Boost:
On Thu, Dec 5, 2019 at 10:15 AM Daniela Engert via Boost
wrote: Am 05.12.2019 um 16:16 schrieb Tobias Loew via Boost:
http://boost.2283326.n4.nabble.com/release-proto-MSVC-19-24-28314-VS-2019-16...
cause it's a showstopper for the latest VS 2019 (16.4.0).
It's not an error introduced in 1.72 but already there for a long time,
and
now the latest MSVC version produces an error on that MSVC-workaround.
I've noticed this as well, today. As a quick hack I simply disabled the workaround at line 233 for BOOST_MSVC >= 1924. Obviously, the problem mentioned by the dead link is no longer a thing. With this modification, Boost.Log is successfully compiling again.
Can you verify that this is only VS 16.4.0 and doesn't apply to 16.3.x? If so, that is scary.
It definitely was compiling just fine until 16.3.7, because this was the version that I have been using as my main compiler at work before switching to 16.4.0 two days ago. Our ubiquitously used logging library depends on Boost.Log which suddenly became affected from the workaround in Boost.Proto no longer compiling.
Unfortunately, I've never compiled our production code with any of the 16.4-pre versions. I only did with my C++20 Modules experiments during my talk preparations, but I noticed that despite the seemingly minor bump 16.3 -> 16.4, the compiler learned a couple of new features (e.g. concepts, the new C++20 syntax). So, until there is a thorough exploration with all Boost libs compiled with msvc 16.4.0 in all 4 modes (32/64, debug/release), there might lurk other surprises as well.
Ciao Dani
I'm not sure I can reproduce this. I'm trying to run with four different configs:
based on visual studio build tools 16.3.x toolset=msvc-14.2 toolset=msvc-14.2 cxxflags=/std:c++latest based on visual studio build tools 16.4.0 toolset=msvc-14.2 toolset=msvc-14.2 cxxflags=/std:c++latest
running in proto ..\..\b2 [config from above] test works fine for all versions....so this bug isn't covered by a test I'm guessing.
Running in log ..\..\b2 [config from above] test
causes the log build to fail for both 16.3 and 16.4 for the configurations that use cxxflags=/std:c++latest. This can be seen in the regression tests for boost.log: https://www.boost.org/development/tests/develop/developer/log.html https://www.boost.org/development/tests/master/developer/log.html
teeks99-07-v16[m|d]-64onAMD64 is the normal msvc-14.2 teeks99-07-v16[m|d]l-64onAMD64 is the msvc-14.2 with cxxflags=/std:c++latest
The error looks something like this (and goes on for a bit)
D:\boost\libs\log>..\..\b2 toolset=msvc-14.2 cxxflags=/std:c++latest test Performing configuration checks
- default address-model : 32-bit (cached) - default architecture : x86 (cached) - symlinks supported : yes (cached) - native-atomic-int32-supported : yes (cached) - message-compiler : yes (cached) - native-syslog-supported : no (cached) - pthread-supports-robust-mutexes : no (cached) - compiler-supports-ssse3 : yes (cached) - compiler-supports-avx2 : yes (cached) - has_icu builds : no (cached) - BOOST_COMP_GNUC >= 4.3.0 : no (cached) - iconv (libc) : no (cached) - iconv (separate) : no (cached) - icu : no (cached) - icu (lib64) : no (cached) - message-compiler : yes (cached) ...patience... ...patience... ...patience... ...patience... ...patience... ...found 23437 targets... ...updating 334 targets... compile-c-c++ ..\..\bin.v2\libs\log\build\msvc-14.2\debug\threadapi-win32\threading-multi\syslog_backend.obj syslog_backend.cpp D:\boost\boost/asio/async_result.hpp(44): error C2062: type 'bool' unexpected D:\boost\boost/asio/async_result.hpp(45): error C2143: syntax error: missing ';' before '{' D:\boost\boost/asio/async_result.hpp(45): error C2447: '{': missing function header (old-style formal list?) D:\boost\boost/asio/async_result.hpp(56): error C7568: argument list missing after assumed function template 'callable_with' D:\boost\boost/asio/async_result.hpp(58): note: see reference to class template instantiation 'boost::asio::detail::is_co
Testing on the 'develop' branch: For what it is worth the Boost log problem is because msvc-14.2 in C20 mode rejects the syntax: 'concept bool' etc. when __cpp_concepts is 1. My testing of asio with msvc-14.2 in c20 mode also fails for the same reason.
I tried a `D:\boost\libs\proto> git checkout ef2e94fe299449c4b23f305a854de0b5b48248be` and had the exact same results as above.
Can you provide some steps to minimally reproduce this issue?