Skip to content
A fork of the popular range-v3 C++ library with support for the Visual Studio 2015 Update 3 VC++ compiler.
C++ Other
  1. C++ 99.2%
  2. Other 0.8%
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
example Eradicate view_adaptor_t alias bugfarm Mar 21, 2017
include Don't use std::iterator; it's deprecated in C++17 Dec 11, 2017
test Eradicate view_adaptor_t alias bugfarm Mar 21, 2017
.gitmodules use https authentication on gh-pages submodule Nov 30, 2014
.travis.yml WCFB01 as of 2016-07-11 Jul 11, 2016
LICENSE.txt line endings Dec 18, 2014 Update readme and docs. Dec 19, 2017


This is a fork of Eric Niebler's range-v3 library from late 2015 with extensive (and somewhat invasive) workarounds to support the Visual C++ compiler as released in Microsoft Visual Studio 2015. As MSVC becomes more conforming throughout the VS2017 series, it is our hope that this separate fork will become unnecessary and that it will be possible for upstream range-v3 to support MSVC directly. Given that goal, there is little motivation for diverging development in this fork. (Note that despite the "VS2015" in the title, this library is intended to work with VS2017 as well.)

Please post any problems you have with this codebase in the Github issues forum and not in the upstream range-v3 forum. There's no need to bother the range-v3 maintainers with issues and/or bugs in this two-year-old code that may have already been fixed upstream.

About (excerpted from the upstream README):

Why does C++ need another range library? Simply put, the existing solutions haven't kept up with the rapid evolution of C++. Range v3 is a library for the future C++. Not only does it work well with today's C++ -- move semantics, lambdas, automatically deduced types and all -- it also anticipates tomorrow's C++ with Concepts Lite.

Range v3 forms the basis of a proposal to add range support to the standard library (N4128: Ranges for the Standard Library). It also will be the reference implementation for an upcoming Technical Specification. These are the first steps toward turning ranges into an international standard.


Check out the (woefully incomplete) documentation here.


Most of the source code is under the Boost Software License. Parts are taken from Alex Stepanov's Elements of Programming, LLVM's libc++, and from the SGI STL. Please see the attached LICENSE.txt for the full text of all licenses.

You can’t perform that action at this time.