Experimental range library for C++11/14/17
C++ Other
Latest commit 80b13ef Feb 15, 2017 @FloopCZ FloopCZ committed with Release the constraints on view::single (#559)
- Use CopyConstructible instead of SemiRegular
- Make the view SemiRegular using "semiregular_t"
- fixes ericniebler/range-v3#452
- refs ericniebler/range-v3#441
Permalink
Failed to load latest commit information.
cmake Use a reusable CMake module to perform the header checks Oct 9, 2016
doc Rename "get" to "read" and "set" to "write" in cursor/adaptor concepts Jan 18, 2017
example Rename "get" to "read" and "set" to "write" in cursor/adaptor concepts Jan 18, 2017
include Release the constraints on view::single (#559) Feb 14, 2017
perf Tighten up warnings: Jun 6, 2016
test Don't disable -Wundef on clang, and fix the error it would have caugh… Feb 10, 2017
test_package Rename "get" to "read" and "set" to "write" in cursor/adaptor concepts Jan 18, 2017
.buckconfig * Added support for the Buck build system Dec 9, 2016
.gitattributes better error messages from action misuses Dec 19, 2014
.gitignore Add support for Bazel build system. Dec 26, 2016
.gitmodules use https authentication on gh-pages submodule Nov 30, 2014
.travis.yml Clang trunk is now version 5 Jan 18, 2017
BUCK * Added support for the Buck build system Dec 9, 2016
BUILD.bazel Add support for Bazel build system. Dec 26, 2016
CMakeLists.txt Don't disable -Wundef on clang, and fix the error it would have caugh… Feb 10, 2017
LICENSE.txt line endings Dec 18, 2014
README.md Add AppVeyor CI for Clang/C2; update README Aug 24, 2016
TODO.md latest docs Aug 4, 2016
WORKSPACE Add support for Bazel build system. Dec 26, 2016
appveyor.yml [AppVeyor] Fix cmake caching bug Sep 2, 2016
conanfile.py Fixed copyright messages Oct 22, 2016
install_libcxx.sh Travis updates: Dec 7, 2016
range-v3.sln add a real Visual Studio project file that works with VS2015 and clan… Dec 11, 2015
range-v3.vcxproj Implement span per P0122R3 Dec 7, 2016
range-v3.vcxproj.filters Implement span per P0122R3 Dec 7, 2016

README.md

range-v3

Range library for C++11/14/17. This code is the basis of a formal proposal to add range support to the C++ standard library.

About:

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.

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.

Documentation:

Check out the (woefully incomplete) documentation here.

Other resources (mind the dates, the library probably has changed since then):

License:

Most of the source code in this project are mine, and those are under the Boost Software License. Parts are taken from Alex Stepanov's Elements of Programming, Howard Hinnant's libc++, and from the SGI STL. Please see the attached LICENSE file and the CREDITS file for the licensing and acknowledgments.

Supported Compilers

The code is known to work on the following compilers:

  • clang 3.5.2
  • GCC 4.8.5 (C++14 support requires GCC 5.2; C++14 "extended constexpr" support is poor before 6.1.)
  • VS2015 Update 3 "Clang with Microsoft CodeGen" (Clang/C2)

Development Status: This code is fairly stable, well-tested, and suitable for casual use, although currently lacking documentation. No promise is made about support or long-term stability. This code will evolve without regard to backwards compatibility.

Build status

  • on Travis-CI: Travis Build Status
  • on AppVeyor: AppVeyor Build Status

Say Thanks!

I do this work because I love it and because I love C++ and want it to be as excellent as I know it can be. If you like my work and are looking for a way to say thank you, you can leave a supportive comment on my blog. Or you could leave me some kudos on my Open Hub range-v3 contribution page. Just click the Give Kudos button here.