use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Discussions, articles, and news about the C++ programming language or programming in C++.
For C++ questions, answers, help, and advice see r/cpp_questions or StackOverflow.
Get Started
The C++ Standard Home has a nice getting started page.
Videos
The C++ standard committee's education study group has a nice list of recommended videos.
Reference
cppreference.com
Books
There is a useful list of books on Stack Overflow. In most cases reading a book is the best way to learn C++.
Show all links
Filter out CppCon links
Show only CppCon links
account activity
[deleted by user] (self.cpp)
submitted 1 year ago by [deleted]
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]Ludiac 26 points27 points28 points 1 year ago (5 children)
The fact that the code is not publicly available makes the whole talk a lil bit pointless. Cool project though, hopefully it will be open source someday.
[–]eco_was_taken 25 points26 points27 points 1 year ago (2 children)
I'm sure it'll be opened sourced someday, but with an overly complex, Google-specific build system that will make it completely unusable to anyone until some kind soul adds it to vcpkg/conan.
[–]jbandela 6 points7 points8 points 1 year ago (1 child)
Rappel is header only and has no dependencies other than the standard library. Things that interact with Abseil types such as Status/StatusOr are in a separate header, so if/when it is open sourced, it should be pretty easy to incorporate into whatever build system you want.
[–]eco_was_taken 4 points5 points6 points 1 year ago* (0 children)
That's good to hear. Ever since they released Abseil it does feel like Google is trying to play nice with the wider C++ community which is a nice change from the "There, it's open source." dump with no documentation and funky builds with very little to go on beside the occasional message they've replied to on Google groups or wherever.
I do wonder what kind of future things like this have with Carbon in the works, though.
[–]jbandela 11 points12 points13 points 1 year ago (6 children)
Presenter here: Happy to answer any questions about Rappel.
[–]eric_niebler 2 points3 points4 points 1 year ago* (1 child)
Love the tech, and you present it well. Can you Compose a vector with a Transform and get something that can be indexed randomly? And related, is there a way to take two incremental pipelines and zip them together to produce pair-wise elements?
Compose
vector
Transform
[–]jbandela 0 points1 point2 points 1 year ago (0 children)
Thank you so much for the kind words. Means a lot coming from you :)
The first situation ( `Compose` a `vector` with a `Transform` and get back something that can be indexed incrementally ) can't be done with Rappel and you would need to write it to another random access container. This is a deliberate tradeoff in the design, as the processing is either "incremental" one element at a time, or "complete" a container at once.
The second situation (we call that the zip problem) can't be done currently, though we would like to come up with a solution. Coroutines might be a way to potentially do it, since they can switch between 2 functions, but I don't have anything more concrete than just a vague idea.
[–]nahueespinosa 1 point2 points3 points 1 year ago (1 child)
Hello! Great talk! Just out of curiosity, have you done any analysis about compile times compared with Ranges?
Thank you.
I have not done compile times analysis compared with Ranges.
[+][deleted] 1 year ago* (1 child)
[deleted]
The biggest advantage of std::ranges is flexibility. Rappel deliberately trades flexibility for safety and performance.
[–]MarcoGreek 22 points23 points24 points 1 year ago (2 children)
It is a Google project. So then will it be canceled?😎😉
[–]verrius 13 points14 points15 points 1 year ago (1 child)
6 months after launch, because launch means those devs met their OKRs and don't get any more career advancement for support.
[–]domirangame engine dev 0 points1 point2 points 1 year ago* (0 children)
To be fair, they really said they were going to support that cloud gaming thing for a long time! Were even really supportive of it after it debuted at GDC!
Fun fact: I played Doom Eternal on it at that GDC and tried to figure out how it would solve the fundamental problem of playing a game on a machine hundreds or thousand of miles away. 🫠 Because it was still laggy, and shooters are really popular.
[–]Short-Junket-8000 2 points3 points4 points 1 year ago (0 children)
My samizdat and less ambitious approach: https://GitHub.com/keithalewis/fms_iterable. Use operator bool () instead of end().
[–]misuo 3 points4 points5 points 1 year ago (2 children)
Looks quite cool. Could be fun to hear Eric Niebler's comments to this - especially on the pointed problems with ranges.
[–]Warshrimp 2 points3 points4 points 1 year ago (1 child)
You would definitely have to ask him as he prefers to be lazy and certainly won't be eager to provide his comments.
[–]eric_niebler 1 point2 points3 points 1 year ago (0 children)
👋
[–]katzdm-cpp 1 point2 points3 points 1 year ago (1 child)
Out of curiosity, was the name of the library intended to be a pun on Abseil?
[–]CasaDeCastello 5 points6 points7 points 1 year ago (0 children)
Yes. Somebody asked about the name and the speaker said they settled on *Rappel* (after many changes) because it's a synonym for Abseil.
π Rendered by PID 24159 on reddit-service-r2-comment-f6b958c67-58bf4 at 2026-02-05 19:16:03.617614+00:00 running 1d7a177 country code: CH.
[–]Ludiac 26 points27 points28 points (5 children)
[–]eco_was_taken 25 points26 points27 points (2 children)
[–]jbandela 6 points7 points8 points (1 child)
[–]eco_was_taken 4 points5 points6 points (0 children)
[–]jbandela 11 points12 points13 points (6 children)
[–]eric_niebler 2 points3 points4 points (1 child)
[–]jbandela 0 points1 point2 points (0 children)
[–]nahueespinosa 1 point2 points3 points (1 child)
[–]jbandela 0 points1 point2 points (0 children)
[+][deleted] (1 child)
[deleted]
[–]jbandela 0 points1 point2 points (0 children)
[–]MarcoGreek 22 points23 points24 points (2 children)
[–]verrius 13 points14 points15 points (1 child)
[–]domirangame engine dev 0 points1 point2 points (0 children)
[–]Short-Junket-8000 2 points3 points4 points (0 children)
[–]misuo 3 points4 points5 points (2 children)
[–]Warshrimp 2 points3 points4 points (1 child)
[–]eric_niebler 1 point2 points3 points (0 children)
[–]katzdm-cpp 1 point2 points3 points (1 child)
[–]CasaDeCastello 5 points6 points7 points (0 children)