Marius Bancila, a C++ developer, writes about modern C++ features such as ranges, std::format, east const and virtual inheritance.
HN commenters link it for C++ references, including lists of removed C++17 features, ranges before and after examples, east const and converting enums to strings.
POD is not an idiom. It was an actual specification (in a sense) for interop between C++ and C. Only in the later standards (maybe starting at C++14?) did the committee refine it further as "POD = Trivial + Standard_Layout" but that is just a redefinition without any fundamental change in semantics. So you can happily write C++ code with just your understanding of POD from C++98 in practice and everything will work fine.
References:
1) Trivial, standard-layout, POD, and literal types - https://learn.microsoft.com/en-us/cpp/cpp/trivial-standard-layout-and-pod-types?view=msvc-170
2) No more plain old data - https://mariusbancila.ro/blog/2020/08/10/no-more-plain-old-data/
> LINQ is to C#/.NET what <algorithm> is to C++.
algorithms weren't really composable unlike LINQ.
Ranges however are, see the examples here: https://mariusbancila.ro/blog/2019/01/20/cpp-code-samples-before-and-after-ranges/
And they also heavily benefit from coroutines, basically allowing to make ranges from anything with e.g. std::generator<T>
look up eastside const
https://mariusbancila.ro/blog/2018/11/23/join-the-east-const-revolution/
I’ve been using this style at home in a longtime now, I appreciate how it’s more at home with C and more consistent
There are a couple of drier alternatives in this blogpost: https://mariusbancila.ro/blog/2023/08/17/how-to-convert-an-enum-to-string-in-cpp/
Here’s a list for C++17 and C++20, at least: https://mariusbancila.ro/blog/2018/07/05/c17-removed-and-deprecated-features/
https://mariusbancila.ro/blog/2019/05/16/cpp-is-fun/