[range] [concepts] Boost 1.68 beta build error in RandomAccessIteratorConcept using latest MSVC
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
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
Great, thanks for the quick response!
/Viktor
On Fri, Jul 20, 2018 at 1:53 PM Daniela Engert
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
participants (3)
-
Alexander Grund
-
Daniela Engert
-
Viktor Sehr