Tag Archives: c++14
String’s competing constructors
Let’s start with the problem. I want to check whether a program received a text message that consists of four consecutive zeroes. Not ‘0’, but the numeric zero. I will create a constant std::string representing the special sequence and compare … Continue reading
Compile-time string concatenation
We will start with a bug, taken from real life. It spans across three files: Question: what happens when this program is executed?
Asserts in constexpr functions
Assertions (like C-style macro assert) are not an ideal, but still useful tool for indicating assumptions about program correctness, and help finding programmer bugs. In this post we will see how we can use assertions in constexpr functions. This works … Continue reading
Ref-qualifiers
In this post I want to describe a small language feature added in C++11 that, although essential for full value semantics support, is often neglected in tutorials and in compiler implementations.
Find the bug
Today, let’s take a short test. Find what is likely to be a bug in the following code and suggest how to fix it. You may object to thus stated task. We only see a small portion of the code. … Continue reading
Too perfect forwarding
Update. One of the readers informed me that the same problem has been already described by R. Martinho Fernandes (see here), Eric Niebler (see here) and Scott Meyers (see here); so I should at least link to their articles. Now … Continue reading
“constexpr” function is not “const”
This is just a word of caution. C++14 will not be backwards compatible with C++11 in one aspect of constexpr functions. In C++11, when you define a constexpr member function, it implicitly obtains a const qualifier: The first declaration of … Continue reading