Meeting 103 (2 April 2020)
Prague trip report
I personally believe that C++20 is the most important update of the standard in this language’s history.
Post-Prague mailing
Include guards vs. #pragma once
We recommend the #pragma once
directive for new code because it doesn’t pollute the global namespace with a preprocessor symbol. It requires less typing, is less distracting, and can’t cause symbol collisions, errors caused when different header files use the same preprocessor symbol as the guard value.
Unlike header guards, this pragma makes it impossible to erroneously use the same macro name in more than one file. OTOH, since with #pragma once
files are excluded based on their filesystem-level identity, this can’t protect against including a header twice if it exists in more than one location in a project.
Some implementations offer vendor extensions like #pragma once
as alternative to include guards. It is not standard and it is not portable. It injects the hosting machine’s filesystem semantics into your program, in addition to locking you down to a vendor. Our recommendation is to write in ISO C++.
What syntax changes would you make to C++ if you had the chance?
C++ links: standard & standardization
C++ links: Executables - Linking and Loading
C++ YouTubers
- Casey Muratori aka HandmadeHero
- C++ Weekly by Jason Turner
- Jonathan Blow
- TheChernoProject
- Bo Quian
- Hopson
- OneLoneCoder
Would you pick C++ for your own pet project in 2020?
Why so many people hate C++?
C++ gets a lot of hate because there are many really bad C++ programmers that think they’re good and we’re still cleaning up their messes. It’s given the illusion that the language is bad because it allows them to do this. Link
“There are only two kinds of languages: the ones people complain about and the ones nobody uses.” – Bjarne Stroustrup via Tony Van Eerd
Most of them failed to learn C++, mostly because they tried to learn from someone who didn’t know C++. Link
Analyze your builds programmatically with the C++ Build Insights SDK
for_each
vs. for
TOML++
See also: TOML Spec V0.5.0
EnTT
A header-only, tiny and easy to use library for game programming and much more written in modern C++, mainly known for its innovative entity-component-system (ECS) model.