-
# Reducing Signed and Unsigned Mismatches with std::ssize() - C++ Stories
In this article, I’ll show another technique that avoids mixing signed and unsigned types.
In my article Integer Conversions …
-
# C++20, Spans, Threads and Fun - C++ Stories
In this post, we’ll have fun using C++20’s spans to process data on multiple threads. What’s more, we’ll be equipped with the latest concurrency features…
-
# Designated Initializers in C++20 - C++ Stories
New Standard, new ways to initialize objects!
With C++20, we get a handy way of initializing data members. The new feature is called designated initia…
-
### Environment details
* Operating System+version: Ubuntu 22.04
* Compiler+version: Ubuntu clang version 15.0.7
* Conan version 1.59.0 / 2.0.17
* Python version: Python 3.10.13 ( in both cases)…
-
# const vs constexpr vs consteval vs constinit in C++20 - C++ Stories
As of C++20, we have four keywords beginning with const. What do they all mean? Are they mostly the same? Let’s compare them in t…
-
# constexpr vector and string in C++20 and One Big Limitation - C++ Stories
constexpr started small in C++11 but then, with each Standard revision, improved considerably. In C++20, we can say that th…
-
# Custom types and std::format from C++20 - C++ Stories
std::format is a large and powerful addition in C++20 that allows us to format text into strings efficiently. It adds Python-style formatting w…
-
# C++20: Heterogeneous Lookup in (Un)ordered Containers - C++ Stories
Would you like to gain 20…35 or even 50% speed improvements when searching in associative containers? In this blog post, we’ll ex…
-
# Simplify template code with fewer typename in C++20 - C++ Stories
C++ not only grows with cool features but also improves and makes code simpler and readable. It’s evident in template code. For exa…
-
# constexpr Dynamic Memory Allocation, C++20 - C++ Stories
constexpr has become a major feature for compile-time programming in C++. Introduced in a simple form in C++11 evolved into almost another “…