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

c:\boost-git\develop\libs\poly_collection\test\test_algorithm_impl.hpp(225):
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:

c:\boost-git\develop\libs\poly_collection\test\test_algorithm_impl.hpp(224):
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;

not_done:

  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
https://github.com/boostorg/smart_ptr/blob/develop/appveyor.yml for
instance.


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