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