[range] [concepts] Boost 1.68 beta build error in RandomAccessIteratorConcept using latest MSVC

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

[range] [concepts] Boost 1.68 beta build error in RandomAccessIteratorConcept using latest MSVC

Boost - Dev mailing list
The following error is emitted in latest MSVC building Boost 1.68 beta:

1>\boost\range\concepts.hpp(257): error C3646: 'n': unknown override
specifier
1>\boost\range\concepts.hpp(264): note: see reference to class template
instantiation 'boost::range_detail::RandomAccessIteratorConcept<Iterator>'
being compiled
1>\range\concepts.hpp(257): error C4430: missing type specifier - int
assumed. Note: C++ does not support default-int

Unfortunately I'm not competent enough to determine what is causing the
error:

Full struct:
 template<class Iterator>
         struct RandomAccessIteratorConcept
             : BidirectionalIteratorConcept<Iterator>
         {
 #if BOOST_RANGE_ENABLE_CONCEPT_ASSERT
             BOOST_RANGE_CONCEPT_ASSERT((
                 Convertible<
                     BOOST_DEDUCED_TYPENAME
RandomAccessIteratorConcept::traversal_category,
                     random_access_traversal_tag
                 >));

             BOOST_CONCEPT_USAGE(RandomAccessIteratorConcept)
             {
                 i += n;
                 i = i + n;
                 i = n + i;
                 i -= n;
                 i = i - n;
                 n = i - j;
             }
         private:
 // MSVC 14.1 - avoid C4596: 'difference_type': illegal qualified name in
member declaration
 #if defined(_MSC_VER) && _MSC_VER >= 1912
             BOOST_DEDUCED_TYPENAME difference_type n;
 #else
             BOOST_DEDUCED_TYPENAME
RandomAccessIteratorConcept::difference_type n;
 #endif
             Iterator i;
             Iterator j;
 #endif
         };



br/Viktor Sehr

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [range] [concepts] Boost 1.68 beta build error in RandomAccessIteratorConcept using latest MSVC

Boost - Dev mailing list
Already fixed: See https://github.com/boostorg/range/issues/66


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [range] [concepts] Boost 1.68 beta build error in RandomAccessIteratorConcept using latest MSVC

Boost - Dev mailing list
In reply to this post by Boost - Dev mailing list
Am 20.07.2018 um 13:35 schrieb Viktor Sehr via Boost:

> The following error is emitted in latest MSVC building Boost 1.68 beta:
>
> 1>\boost\range\concepts.hpp(257): error C3646: 'n': unknown override
> specifier
> 1>\boost\range\concepts.hpp(264): note: see reference to class template
> instantiation 'boost::range_detail::RandomAccessIteratorConcept<Iterator>'
> being compiled
> 1>\range\concepts.hpp(257): error C4430: missing type specifier - int
> assumed. Note: C++ does not support default-int
> #if defined(_MSC_VER) && _MSC_VER >= 1912
>              BOOST_DEDUCED_TYPENAME difference_type n;
>  #else
>              BOOST_DEDUCED_TYPENAME
> RandomAccessIteratorConcept::difference_type n;
>  #endif

This particular code in question is no longer up-to-date. Just yesterday
I ran Boost.Range's test-suite from 'master' with MSVC 15.7.5 (latest
released version as of today) without any errors.

Ciao
  Dani
--
PGP/GPG: 2CCB 3ECB 0954 5CD3 B0DB 6AA0 BA03 56A1 2C4638C5

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [range] [concepts] Boost 1.68 beta build error in RandomAccessIteratorConcept using latest MSVC

Boost - Dev mailing list
Great, thanks for the quick response!

/Viktor

On Fri, Jul 20, 2018 at 1:53 PM Daniela Engert <[hidden email]> wrote:

> Am 20.07.2018 um 13:35 schrieb Viktor Sehr via Boost:
> > The following error is emitted in latest MSVC building Boost 1.68 beta:
> >
> > 1>\boost\range\concepts.hpp(257): error C3646: 'n': unknown override
> > specifier
> > 1>\boost\range\concepts.hpp(264): note: see reference to class template
> > instantiation
> 'boost::range_detail::RandomAccessIteratorConcept<Iterator>'
> > being compiled
> > 1>\range\concepts.hpp(257): error C4430: missing type specifier - int
> > assumed. Note: C++ does not support default-int
> > #if defined(_MSC_VER) && _MSC_VER >= 1912
> >              BOOST_DEDUCED_TYPENAME difference_type n;
> >  #else
> >              BOOST_DEDUCED_TYPENAME
> > RandomAccessIteratorConcept::difference_type n;
> >  #endif
>
> This particular code in question is no longer up-to-date. Just yesterday
> I ran Boost.Range's test-suite from 'master' with MSVC 15.7.5 (latest
> released version as of today) without any errors.
>
> Ciao
>   Dani
> --
> PGP/GPG: 2CCB 3ECB 0954 5CD3 B0DB 6AA0 BA03 56A1 2C4638C5
>

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost