Boost logo

Boost :

Subject: Re: [boost] [teeks99-09-p-win2016-64on64][poly_collection] Regression with latest MSVC 14.1 in C++17 mode
From: Peter Dimov (lists_at_[hidden])
Date: 2018-02-28 15:14:49

Joaquin M López Muñoz wrote:
> Is there some kind soul with access to this compiler who'd like to try the
> following workarounds and report the results?
> // workaround 1
> using difference_type=
> typename std::iterator_traits<ForwardIterator1>::difference_type;
> typename difference_type l1=std::distance(first1,last1);

Fails with

error C7511: 'difference_type': 'typename' keyword must be followed by a
qualified name

> // workaround 2
> typedef typename
> std::iterator_traits<ForwardIterator1>::difference_type difference_type;
> difference_type l1=std::distance(first1,last1);

Fails with the original error:

error C2760: syntax error: unexpected token 'identifier', expected ';'

Moving the `using` above the `not_done:` label fixes it:

  using difference_type=
    typename std::iterator_traits<ForwardIterator1>::difference_type;


  difference_type l1=std::distance(first1,last1);
  if(l1==difference_type(1))return false;

You could have used Appveyor for that by the way - if you set it up to test
feature branches, you can then test those changes on a branch. Like for

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