Boost logo

Boost :

From: Tom Kent (lists_at_[hidden])
Date: 2019-12-08 12:20:37

On Sat, Dec 7, 2019 at 12:51 AM Daniela Engert <dani_at_[hidden]> 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 <boost_at_[hidden]> wrote:
> Am 05.12.2019 um 16:16 schrieb Tobias Loew via Boost:
> 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

based on visual studio build tools 16.3.x
toolset=msvc-14.2 cxxflags=/std:c++latest
based on visual studio build tools 16.4.0
toolset=msvc-14.2 cxxflags=/std:c++latest

running in proto
..\..\b2 [config from above] test
works fine for all this bug isn't covered by a test I'm

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:

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)
...found 23437 targets...
...updating 334 targets...
D:\boost\boost/asio/async_result.hpp(44): error C2062: type 'bool'
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?


Boost list run by bdawes at, gregod at, cpdaniel at, john at