Skip to content
C++ ranges components
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
README.md
adjacent.hpp
algorithm.hpp
cartesian_product.hpp
iterator_range.hpp
main.cpp
named_type.hpp
test_cartesian_product.cpp
transform.hpp
variadic.hpp
zip.hpp

README.md

This project implements several range adaptors, that aim at behaving like those of boost ranges or range-v3.

The point of this project is to discover new range adaptors that can solve common problems.

During this research, I have implemented cartesian_product that I believe doesn't exist in range libraries yet but has a real business case: producing the range of all the possible combinations between the elements of its input ranges. Look for testCartesianProduct in main.cpp to see how this looks like.

I have also implemented adjacent, which gives a view over pairs of consecutive elements in the input range. It seems that other people had the same need though, because it has just been added to the range-v3 library under the name of 'sliding' and that has more customization possible than my adjacent attempt. It's encouraging to see that I'm going in the right direction though.

I have also implemented some adaptors that already exist, like transform and zip for example, to see how new adaptors can be combined with these.

You can’t perform that action at this time.