On Sun, Dec 8, 2019, 11:35 AM Daniela Engert
Hi Tom!
Am 08.12.2019 um 13:20 schrieb Tom Kent:
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
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?
This is not the compile error that I was running into, it's been the same one as Tobias did. There's probably a small impedance mismatch: you are talking about the unit tests, I was talking about the partial exposure of Boost.Proto through Boost.Log as it is used in our codebase. We are using /std:c++latest /permissive- /Zc:__cplusplus as the only flags that might affect the compiler frontend. In this particular scenario, compilation with msvc up to VS2019 update 3 was fine, but started failing with update 4. I haven't run any of Boost's unit tests for more than a year or so now. Therefore I can't give any additional hints about how the later versions of msvc are faring there, sorry.
Ciao Dani
-- PGP/GPG: 2CCB 3ECB 0954 5CD3 B0DB 6AA0 BA03 56A1 2C4638C5
So building boost log should reproduce the problem? If not, can you give a few lines that will do it? It sounds like this won't prevent the building of any boost libraries, just user code, right? Tom