Comparing C++ range libraries for filter+reverse case with non-trivial lambda

This page summarizes the projects mentioned and recommended in the original post on dev.to

CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • cpp-ranges-bench

    Comparison of C++ ranges performance for filter-take-enumerate-reverse case

    The repo with source code is here https://github.com/serpent7776/cpp-ranges-bench

  • CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
  • Catch

    A modern, C++-native, test framework for unit-tests, TDD and BDD - using C++14, C++17 and later (C++11 support is in v2.x branch, and C++03 on the Catch1.x branch)

    The code uses catch2 to test for correctness and performance. Catch2 is a unit testing framework for C++, but it also provides basic micro-benchmarking features. Unfortunately, it doesn't provide any way to visualise the results, so I created a script and submitted PR adding plotting capabilities to Catch.

  • range-v3

    Range library for C++14/17/20, basis for C++20's std::ranges

    rangesv3 - Uses ranges-v3 - range library for C++14/17/20. Pretty close to the implementation using std::ranges, but a bit more complex, because it distinguishes between actions and views. This method uses the reverse action with views and to_vector, which might allocate an extra vector.

  • flux

    A C++20 library for sequence-orientated programming (by tcbrindle)

    fluxranges - Uses flux, a C++20 library for sequence-oriented programming. Quite noisy compared to other range implementations.

  • bits

    bits and pieces (by serpent7776)

    I will then convert the stats file with a perf-stat-to-sc script I wrote. It will create a sc-im spreadsheet, which will make it easier to compare the results.

  • sc-im

    sc-im - Spreadsheet Calculator Improvised -- An ncurses spreadsheet program for terminal

    I will then convert the stats file with a perf-stat-to-sc script I wrote. It will create a sc-im spreadsheet, which will make it easier to compare the results.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

Did you konow that C++ is
the 7th most popular programming language
based on number of metions?