Range-v3 on MSVC is Available on GitHub

We are delighted to announce that the Visual C++ Team just published an implementation of range-v3 on the Microsoft GitHub repo.

This contribution comes hot on the heels of our recent work to improve expression SFINAE on our Visual Studio 2015 Update 3 VC++ compiler . This is the first implementation of the Range TS running in MSVC. In “Ranges for the Standard Library, Revision 1” (N4128) Ranges are defined like this: “A range is an object that refers to a sequence of elements, conceptually similar to a pair of iterators. One prime motivation for ranges is to give users a simpler syntax for calling algorithms. Rather than this:

std::vector<int> v { /*…*/ };
std::sort( v.begin(), v.end() );
Ranges would give us a pithier syntax:
std::sort( v );”

More information on range-v3 here

Supporting Ranges is important to our C++ team, as exemplified not only by us hiring one of the key maintainers (Casey Carter), but also with the investments we continue to make in this feature across our entire compiler (from parsing to code generation).

This library release is somewhat of an early beta, but the big pieces are all in place. This branch will be evolving along with MSVC toward parity with upstream range-v3. This implementation works well with Visual Studio 2015 Update3 but also with Preview 4 of Visual Studio “15”.

Acquiring the Range v3 implementation is just one github command from now:

git clone https://github.com/microsoft/Range-V3-VS2015

Please try it out, and let us know what you think. We’re absolutely interested in suggestions, feedback..