From 795046f8fc30e359d0a4826cd5bb652d3ccf3855 Mon Sep 17 00:00:00 2001 From: Nathan Cook Date: Wed, 28 Feb 2018 10:55:24 +0000 Subject: [PATCH 1/2] Fix Error C4596: 'difference_type': illegal qualified name in member declaration when compiling with VS 2017 Professional 15.5.6 --- include/boost/range/concepts.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/boost/range/concepts.hpp b/include/boost/range/concepts.hpp index 87c1e98..6fac727 100644 --- a/include/boost/range/concepts.hpp +++ b/include/boost/range/concepts.hpp @@ -252,7 +252,7 @@ namespace boost { n = i - j; } private: - BOOST_DEDUCED_TYPENAME RandomAccessIteratorConcept::difference_type n; + BOOST_DEDUCED_TYPENAME difference_type n; Iterator i; Iterator j; #endif From f1906e914eaaf76408a0a4e69c61c457c08abba8 Mon Sep 17 00:00:00 2001 From: Nathan Cook Date: Wed, 28 Feb 2018 13:43:34 +0000 Subject: [PATCH 2/2] use _MSC_VER to guard fix for C4596 when compiling with MSVC141 --- include/boost/range/concepts.hpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/boost/range/concepts.hpp b/include/boost/range/concepts.hpp index 6fac727..6fef2ea 100644 --- a/include/boost/range/concepts.hpp +++ b/include/boost/range/concepts.hpp @@ -252,7 +252,12 @@ namespace boost { 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