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++ YouTubers

Reddit

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.

Unreal Engine Gameplay Framework Primer for C++

Doxygen and XML comments in Visual Studio

Twitter