Boost logo

Boost :

Subject: Re: [boost] [Range] 1.68 master/beta MSVC compilation error with /fpermissive-
From: Vinnie Falco (vinnie.falco_at_[hidden])
Date: 2018-07-11 14:56:45


On Wed, Jul 11, 2018 at 7:49 AM, degski via Boost <boost_at_[hidden]> wrote:
> This thread shows how and why it's important to get boost to build with
> Clang/LLVM (clang-cl), as VS is (still) a moving target and clang probably
> already has it right. By reporting those bugs MS (which it possibly is),
> you'll also be helping VS (and your-selves) forward. Trying to fix a build
> of Boost with a vaporware like VS 15.6.6 seems a waste of time and is
> highly irrelevant.

I couldn't disagree more (although, Boost should also be compiled with
clang-cl if it is not discontinued). The latest Visual Studio is not
vaporware it is a released, shipping product which many people use to
accomplish real work. And in fact, I suspect that Visual Studio
actually fixed a bug which is what is causing this new compilation
error.

The code in question which fails is:

    BOOST_DEDUCED_TYPENAME difference_type n;

This, to my eye, should not compile as the code appears in a class
template where difference_type is a nested type of the base class and
should not be visible unqualified. The resulting errors appear in the
log I linked. Changing that code to the following:

    BOOST_DEDUCED_TYPENAME
BidirectionalIteratorConcept<Iterator>::difference_type n;

resolves the error for _MSC_VER >= 1912


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk