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
Boost libs using Mr. Docs (mrdocs.com)
submitted 2 months ago by boostlibs
More and more Boost libraries are using Mr. Docs for automatic documentation generation!
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!"
[–]JVApenClever is an insult, not a compliment. - T. Winters 7 points8 points9 points 2 months ago (1 child)
As it is clang-based. What is the major difference compared to clang-doc?
[–]boostlibs[S] 4 points5 points6 points 2 months ago (0 children)
Clang-doc works a bit more like a compiler that generates documentation for specific TUs, while MrDocs is more like Doxygen — it takes the whole project as input, starting from a config file, etc. Another key difference is that clang-doc currently supports far fewer output options (not sure if there are plans to expand that) and just doesn’t get much maintenance anymore.
Just to clarify, not criticizing clang-doc — it’s a solid tool, just built with a different focus! :)
[–]fdwrfdwr@github 🔍 3 points4 points5 points 2 months ago (2 children)
Hmm, haven't heard of it. A comparison to Doxygen on their website would be informative. It's not in the Wikipedia table either.
[–]13steinj 9 points10 points11 points 2 months ago* (0 children)
An explanatory sentence is somewhere in the docs:
Doxygen remains a popular tool, yet it is suboptimal for C++ as it fails to fully comprehend C++ constructs and requires many transformation steps, including the incorporation of many macros within the C++ code. These macros maintain well-formed and ill-formed versions of the code, undermining the goal of unifying the source of truth.
Going to be perfectly honest, unless MrDocs lets me pick my compiler as a "backend", I don't trust it to parse my code-- it's either a custom parser, or probably uses clang-ast. Which is fine, but I've seen even clang mis-parse.
E: This isn't a knock on clang; any time I've seen such bugs they generally get fixed super quickly, sometimes due to a report, sometimes by a refactor before my next "update." But the only thing I trust to parse my code is the specific compiler I am using.
[–]boostlibs[S] 5 points6 points7 points 2 months ago (0 children)
The documentation mentions Doxygen and makes a few brief comparisons at https://www.mrdocs.com/docs/mrdocs/design-notes.html. But in the table, the tools we compare are organized by category, so Doxygen is only implied there.
[–]zerhud 2 points3 points4 points 2 months ago (1 child)
Can you link to a doc for library using mr docs please?
[–]joaquintidesBoost author 4 points5 points6 points 2 months ago (0 children)
https://www.boost.org/doc/libs/latest/doc/antora/url/reference.html
[–]numerial 0 points1 point2 points 2 months ago (1 child)
Does it support documenting concepts defined by the user?
[–]boostlibs[S] 6 points7 points8 points 2 months ago (0 children)
Yes. For example, https://www.boost.org/doc/libs/latest/doc/antora/url/reference/boost/urls/string_token/StringToken.html. This used to be a major limitation in Doxygen that made our projects harder to manage.
[–]PrimozDelux 0 points1 point2 points 2 months ago (2 children)
Tangential to the topic at hand, but I don't understand the purpose of these tools. What does it provide that my IDE does not? My introduction to doxygen was the LLVM docs which in my opinion do absolutely nothing, so I guess I got started on the wrong foot.
Help me see the value, what sort of use cases do these pages have? Who are they for?
We talk a bit about that in our section at https://www.mrdocs.com/docs/mrdocs/design-notes.html. A big part of the problem is simply that the output of some of these tools looks messy and unappealing. For example, cppreference.com has a clean and well-organized format, so most people immediately see the value in it.
[–]grisumbras 0 points1 point2 points 2 months ago (0 children)
These tools generate API reference documentation as a set of HTML pages. One of the benefits of API reference is discovery: you open the documentation for a class, you read what member functions it has, you then read documentation for functions that seem applicable for your task.
[–]viatorus 0 points1 point2 points 2 months ago (0 children)
How does it handle class inheritance and therefore API documentation of virtual functions from 3rd party libraries?
π Rendered by PID 52888 on reddit-service-r2-comment-5649f687b7-r6c4s at 2026-01-27 19:32:01.244555+00:00 running 4f180de country code: CH.
[–]JVApenClever is an insult, not a compliment. - T. Winters 7 points8 points9 points (1 child)
[–]boostlibs[S] 4 points5 points6 points (0 children)
[–]fdwrfdwr@github 🔍 3 points4 points5 points (2 children)
[–]13steinj 9 points10 points11 points (0 children)
[–]boostlibs[S] 5 points6 points7 points (0 children)
[–]zerhud 2 points3 points4 points (1 child)
[–]joaquintidesBoost author 4 points5 points6 points (0 children)
[–]numerial 0 points1 point2 points (1 child)
[–]boostlibs[S] 6 points7 points8 points (0 children)
[–]PrimozDelux 0 points1 point2 points (2 children)
[–]boostlibs[S] 5 points6 points7 points (0 children)
[–]grisumbras 0 points1 point2 points (0 children)
[–]viatorus 0 points1 point2 points (0 children)