All about UBSan (UndefinedBehaviorSanitizer) -- MaskRay
You've almost certainly heard about it. But if you haven't used it, read on...
All about UBSan (UndefinedBehaviorSanitizer)
... and then light it up today on your current project.
September 13-19, Aurora, CO, USA
October 25, Pavia, Italy
November 6-8, Berlin, Germany
November 3-8, Kona, HI, USA
By Blog Staff | Jan 31, 2023 08:20 PM | Tags: None
You've almost certainly heard about it. But if you haven't used it, read on...
All about UBSan (UndefinedBehaviorSanitizer)
... and then light it up today on your current project.
By Blog Staff | Jan 31, 2023 08:17 PM | Tags: None
Delving into the "how it works" and "why use it" of std::initializer_list...
std::initializer_list in C++, Internals and Use Cases
by Bartłomiej Filipek
From the article:
std::initializer_list<T>, is a lightweight proxy object that provides access to an array of objects of type const T.
The Standard shows the following example...
By Blog Staff | Jan 31, 2023 07:59 PM | Tags: None
A new year, a new wave of standards adoption...
C++ Ecosystem in 2022: Fast Adoption of C++17 and C++20, C++ Toolset Landscape, and Better Code Analysis Practices
by Anastasia Kazakova
From the article:
... In this post we’ll discuss the final results, review the trends, and learn which direction the C++ community is currently evolving in. We also invite you to read through the key takeaways and detailed data for many programming languages and areas of software development...
C++ standard: developers are moving fast to C++17 and C++20...
By Blog Staff | Jan 19, 2023 04:30 PM | Tags: None
You've got to know where to find them, know how to bind them, know when to ask for help, from a hidden friend...
Argument-Dependent Lookup and the Hidden Friend Idiom
by Rainer Grimm
From the article:
Have you ever wondered why the following program works?
#include <iostream> int main() { std::cout << "Hello world"; }Why should the program not work? The overloaded output operator
operator<<
is defined in thestd
namespace. The question is, therefore: How is the appropriate overloaded output operator forstd::string
found? You may already assume it...
By Blog Staff | Jan 19, 2023 04:28 PM | Tags: None
A little less primitive...
Making C++ primitive types meaningfully movable when they have sentinel values
by Raymond Chen
From the article:
C++ primitive types do not have special semantics for move constructor or move assignment. Their move operations are just copies. But what if you really want them to move, say, because they have a sentinel value that represents an "empty" state...?
By Blog Staff | Jan 19, 2023 04:21 PM | Tags: None
How do I construct thee? Let me count the ways...
Getting in trouble with mixed construction
by Barry Revzin
From the article:
Several years ago, I wrote a post about the complexities of implementing comparison operators for
optional<T>
: Getting in trouble with mixed comparisons. That post was all about how, even just for==
, making a few seemingly straightforward decisions leads to an ambiguity that different libraries handle differently.Now is a good time to circle back to that same idea, except this time instead of talking about equality comparison, we’re just going to talk about construction. This post is going to work through a bunch of cases of trying to construct an object of type
X
from an object of typeY
...
By Jens Maurer | Jan 19, 2023 01:03 PM | Tags: None
Lambdas
Modern C++ In-Depth — Lambdas, Part 2
by Michael Kristofik
From the article
In this installment, we’ll take a closer look at how to write and use lambdas, along with examining a common pitfall.
By Blog Staff | Jan 13, 2023 10:59 AM | Tags: None
Are you a library person (std::function, std::bind, std::bind_front) or a language person (lambdas, auto, currying)? So many tools to get the job done...
Partial function application
by Rainer Grimm
From the article:
A few weeks ago, I had a discussion with a few of my readers. One reader said that I should write about Partial Function Applications. Another reader mentioned that C++ does not support function applications. This is wrong. C++ supports Partial Function Application. Consequently, I am writing today about
std::function
,std::bind
,std::bind_front
, lambdas,auto
, and currying.Let me start with a bit of theory...
By Blog Staff | Jan 13, 2023 10:57 AM | Tags: None
Perfectly imperfect:
Using perfect (and imperfect) forwarding to simplify C++ wrapper classes
by Raymond Chen
From the article:
There may be cases where you have a C++ class that wants to wrap another C++ class that is contained as a member. ... It’s annoying that there’s so much boilerplate to do the method forwarding, and that we have to keep looking up the parameters and return types so that each forwarder has the correct signature. Fortunately, we can use perfect forwarding to write most of them for us: ...
By Blog Staff | Jan 1, 2023 11:32 AM | Tags: None
Sending us straight into the new year with cash, cars, and games:
An interview that went viral
by Rainer Grimm
From the article:
I gave the interview for the e-finance-blog "efinancialcareers". I essentially stated the following:
- C++ is heavily used in the finance industry, for game developers, and in the automotive industry.
- When you want to learn C++, start at least with C++11.
- C++ is often used to build infrastructure.
- C++ is too big to fall.
... In total, I got almost 2000 comments. Today, I want to present the main points about the final interview, because this is my motivation for writing articles, posts, and books, recording videos, and teaching and mentoring C++...