diff --git a/include/boost/container_hash/hash.hpp b/include/boost/container_hash/hash.hpp index 733d934..991a505 100644 --- a/include/boost/container_hash/hash.hpp +++ b/include/boost/container_hash/hash.hpp @@ -417,7 +417,9 @@ namespace boost return boost::hash_unordered_range( v.begin(), v.end() ); } -#if defined(_MSVC_STL_VERSION) && _MSVC_STL_VERSION == 141 && BOOST_CXX_VERSION >= 201700L +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && ( \ + ( defined(_MSVC_STL_VERSION) && _MSVC_STL_VERSION < 142 ) || \ + ( !defined(_MSVC_STL_VERSION) && defined(_CPPLIB_VER) && _CPPLIB_VER >= 520 ) ) // resolve ambiguity with unconstrained stdext::hash_value in :-/ @@ -702,9 +704,11 @@ namespace boost } }; -#if defined(_MSVC_STL_VERSION) && _MSVC_STL_VERSION == 141 && BOOST_CXX_VERSION >= 201700L +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && ( \ + ( defined(_MSVC_STL_VERSION) && _MSVC_STL_VERSION < 142 ) || \ + ( !defined(_MSVC_STL_VERSION) && defined(_CPPLIB_VER) && _CPPLIB_VER >= 520 ) ) - // msvc-14.1 has stdext::hash_value for basic_string in :-/ + // Dinkumware has stdext::hash_value for basic_string in :-/ template struct hash< std::basic_string > {