What's up with C++ ranges?

This page summarizes the projects mentioned and recommended in the original post on /r/cpp

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • range-v3

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

  • // Must call the below range pipeline to produce a string on an lvalue. Since // we end the pipeline with to_string everything is evaluated here, so no // lifetime issue. auto rows = this -> rows_iter(); namespace rv = ranges::views; // See dynamic width https://fmt.dev/7.1.3/syntax.html#format-examples return rows | rv::transform([elem_delim, width](const auto& row) { // For every row return rv::all(row) // For each row | rv::transform([width](const auto& elem) { // Format each element with padding return fmt::format("{:>{}}", elem, width); }) // Can't use views::join because views::transform returns a // temporary. // Can't use actions::join as it doesn't support a delimiter // https://github.com/ericniebler/range-v3/issues/1406 // views::intersperse and actions::join works // // Add delimiters, combine into one string for the row | rv::intersperse(std::string{elem_delim}) | ranges::actions::join; }) | rv::cache1 | rv::join(row_delim) | ranges::to();

  • cpp-lazy

    C++11/14/17/20 library for lazy evaluation

  • I don’t want to come over as a show off but I’m pretty sure my own library is more readable. It also hasn’t any of the lifetime issues (AFAIK) because everything is stored in the iterator itself, giving more readability at the expense of a tiny tiny bit more overhead.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • K_means-clustering

    K_means clustering implementation in C++20 and range-v3

  • Idk if it qualifies as "real-world" but here is a shameless plug: https://github.com/Ayenem/k-means

  • swift

    The Swift Programming Language

  • Could you share some reading on some of the languages you mentioned that are working on better C++ interop support? I've been keeping up with Swift's effort via this document, but haven't kept up with any others.

  • ComputeSharp

    A .NET library to run C# code in parallel on the GPU through DX12, D2D1, and dynamically generated HLSL compute and pixel shaders, with the goal of making GPU computing easy to use for all .NET developers! 🚀

  • And thanks to the community there are even some GPGPU efforts, like https://github.com/Sergio0694/ComputeSharp, but yeah don't expect CUDA or SYSCL like tooling.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
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

  • Java Streams in c++

    1 project | /r/cpp | 5 Nov 2023
  • What are some of the ways to make a super nasty nested loop become clean?

    2 projects | /r/cpp | 7 Apr 2023
  • 295 pages on Initialization in Modern C++ :)

    1 project | /r/cpp | 30 Mar 2023
  • Is there an <algorithm> way to filter + transform multiple containers at once

    1 project | /r/cpp_questions | 22 Oct 2022
  • C++20 Ranges Algorithms – 7 Non-Modifying Operations

    5 projects | news.ycombinator.com | 25 Apr 2022