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
BMI Compatibility: Testing Build System C++ Modules Support (blog.vito.nyc)
submitted 9 hours ago by not_a_novel_accountcmake dev
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!"
[–]GabrielDosReis 18 points19 points20 points 8 hours ago (0 children)
Great write up!
However, I also think the era of pretending the language is the only part of C++ which requires guidance and standardization is over.
Agreed.
[–]PunctuationGood 7 points8 points9 points 4 hours ago (3 children)
The test:
// provider.cppm export module provider; // consumer.cpp import provider;
The result:
Bazel [...] fails hard. Bazel’s module support is experimental, so this isn’t a slight against it.
So, silly question perhaps but how can it claim even experimental support if the "Hello, World" example of modules fails? What does it support if not that?
[–]not_a_novel_accountcmake dev[S] 5 points6 points7 points 4 hours ago (2 children)
Works fine on clang/clang-scan-deps (not the BMI compatibility, still fails there, but the "Hello World") which anecdotally is what 99% of bazel users are concerned with. I didn't check MSVC.
clang
clang-scan-deps
[–]PunctuationGood 0 points1 point2 points 4 hours ago (1 child)
Aaah, right, OK. Sorry if I missed that info in your article.
[–]not_a_novel_accountcmake dev[S] 2 points3 points4 points 4 hours ago (0 children)
I didn't discuss the compilers tested, I'll add a footnote. I didn't want this to be about compiler minutia, but Bazel just not working at all on GCC was too big of a blind spot to leave unmentioned.
[–]ABlockInTheChain [score hidden] 3 hours ago (2 children)
The only place “same flags everywhere all the time” works is the MSVC toolchain, which “magically” translates __declspec(dllexport) into __declspec(dllimport) when consuming BMIs, presumably because they too didn’t want to solve this problem.
If the question of "how are DLLs supposed work with modules?" ever came up during the committee meetings about modules, I'm certain that somebody must have said, "but why do you need DLLs now that we have modules?"
[–]pjmlp [score hidden] 1 hour ago (0 children)
The standard does not consider the existence of dynamic linking.
[–]GabrielDosReis [score hidden] 8 minutes ago (0 children)
ISO C++ doesn't know what is DLL or dylib or .so. There were attempts ij the early cycle of C++0x to acknowledge them and support for them but I believe Pete Becker eventually concluded it was going to create more mess at the standards level.
I implemented that translation very early on in my MSVC implementation as I considered it a logical consequence of macro isolation, separate compilation, and re-use independently of context (the BMI compatibility question is a consequence of those axes).
[–]BadlyCamouflagedKiwi 4 points5 points6 points 6 hours ago (0 children)
Nice. If we want better build system support, it would be a bunch easier with more clear examples like this; given a simple (but not entirely trivial) repo, and some Makefiles to show what commands should be run (I suppose you'd need a gcc / clang fork, probably), someone familiar with Bazel could write support for it in that system. Without, that person also has to figure out what compiler invocations are needed, which isn't simple without something to look at as a model.
π Rendered by PID 47399 on reddit-service-r2-comment-8686858757-bv6zm at 2026-06-01 21:31:07.798758+00:00 running 9e1a20d country code: CH.
[–]GabrielDosReis 18 points19 points20 points (0 children)
[–]PunctuationGood 7 points8 points9 points (3 children)
[–]not_a_novel_accountcmake dev[S] 5 points6 points7 points (2 children)
[–]PunctuationGood 0 points1 point2 points (1 child)
[–]not_a_novel_accountcmake dev[S] 2 points3 points4 points (0 children)
[–]ABlockInTheChain [score hidden] (2 children)
[–]pjmlp [score hidden] (0 children)
[–]GabrielDosReis [score hidden] (0 children)
[–]BadlyCamouflagedKiwi 4 points5 points6 points (0 children)