We’re happy to announce that the ongoing conformance work in the MSVC compiler has reached a new milestone: support for Eric Niebler’s range-v3 library. It’s no longer necessary to use the range-v3-vs2015 fork that was introduced for MSVC 2015 Update 3 support; true upstream range-v3 is now usable directly with MSVC 2017.
The last push to achieve range-v3 support involved Microsoft-sponsored changes in both the MSVC compiler and range-v3. The compiler changes involved fixing about 60 historically blocking bugs, of which 30+ were alias template bugs in /permissive- mode. Changes to range-v3 were to add support for building the test suite with MSVC, and some workarounds for roughly a dozen minor bugs that we will be working on fixing in future releases of MSVC.
How do I get range-v3 to try it out?
The range-v3 changes haven’t yet flowed into a release, so for now MSVC users should use the master branch. You can get range-v3:
Note that range-v3’s master branch is under active development, so it’s possible that the head of the branch may be unusable at some times. Releases after 0.4.0 will have MSVC support; until then the commit at 01ccd0e5 is known to be good. Users of vcpkg should have no issues: the range-v3 packager will ensure that vcpkg installs a known-good release.
- Continue fixing bugs that get reported from range-v3 usage and development.
- Prioritize implementation of C++20 Concepts in preparation to support the concept-based Ranges library that will hopefully be part of the upcoming C++20.
This range-v3 announcement follows our previous announcement about supporting Boost.Hana in 15.8. The C++ team here at Microsoft is strongly motivated to continue improving our support for open source libraries.
We’d love for you to download Visual Studio 2017 version 15.9 and try out all the new C++ features and improvements. As always, we welcome your feedback. We can be reached via the comments below or via email (email@example.com). If you encounter other problems with MSVC or have a suggestion for Visual Studio 2017 please let us know through Help > Send Feedback > Report A Problem / Provide a Suggestion in the product, or via Developer Community. You can also find us on Twitter (@VisualC) and Facebook (msftvisualcpp).