fms_iterable
iterators with explicit operator bool() const (by keithalewis)
stl_interfaces
A C++14 and later CRTP template for defining iterators (by boostorg)
fms_iterable | stl_interfaces | |
---|---|---|
3 | 3 | |
3 | 70 | |
- | - | |
6.0 | 4.1 | |
3 months ago | about 1 month ago | |
C++ | C++ | |
- | Boost Software License 1.0 |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
fms_iterable
Posts with mentions or reviews of fms_iterable.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-01-03.
-
CXXIter: A chainable c++20 LINQ-like iterator library
Good stuff! I am a fan of LINQ and see you took pains to make your library performant (a common complaint against LINQ). My take on a more C++-y way of doing this is https://github.com/keithalewis/fms_iterable. An iterable is a C++ iterator with explicit operator bool() const to detect the end. The downside is I have to figure out how to translate this into the standard set of LINQ operators. Nowhere near as complete as your work but my main use case is implementing numerical algorithms. Maybe you'll find a pony in there. :-)
-
Single header functional iterator library
See https://github.com/keithalewis/fms_iterable for some ideas in this direction.
-
12 Different Ways to Filter Containers in Modern C++
It can be done: https://github.com/keithalewis/fms_iterable
stl_interfaces
Posts with mentions or reviews of stl_interfaces.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2021-06-22.
-
My Favourite C++ Footgun
This is actually on my list of "neat utilities to write": an iterator that encapsulates this "offset" for vector.
If anyone is looking to write a custom iterator, I definitely recommend Boost's new stl interfaces: https://github.com/boostorg/stl_interfaces
-
Single header functional iterator library
There's this thing which, thankfully, doesn't depend on other parts of Boost. At least didn't last time I checked.
-
Certainty and timeframe of std::generator?
So if you don't have full-blown boost, or can't upgrade to 1.74 yet, you can just go to the boost github page for it, and copy just three header files: 1. include/boost/stl_interfaces/config.hpp 2. include/boost/stl_interfaces/fwd.hpp 3. and include/boost/stl_interfaces/iterator_interface.hpp, assuming you just want forward-iterators.
What are some alternatives?
When comparing fms_iterable and stl_interfaces you can also consider the following projects:
rangeless - c++ LINQ -like library of higher-order functions for data manipulation
iter - Functional C++ iterator library
cppcoro - A library of C++ coroutine abstractions for the coroutines TS
zug - Transducers for C++ — Clojure style higher order push/pull sequence transformations