override and final

Using the context-sensitive keyword override and final, you can explicitly manage the overriding of virtual…

Strongly-Typed Enums

Enumerations are a convenient way to define integer constants with names. These integer constants are…

Raw and Cooked

C++11 has user-defined literals for characters, C strings, integers, and floating-point numbers. Integers…

User-Defined Literals

User-defined literals are a unique feature in all mainstream programming languages. They empower you…

Compare and Modify Types

The type-traits library empowers you to compare and modify types. All is done at compile time therefore,…

Check Types

Template Metaprogramming is programming at compile time. But what has template metaprogramming in common…

More and More Save

In the post Statically checked I wrote that the functions of the type-traits library are an ideal fit…
static assert

Statically Checked

static_assert is the tool in modern C++ to make your code safe. static_assert The usage of static_assert…


The initialization of variables was unified in C++11. The rule is quite simple. {}-Initialization is…

auto-matically inititialized

Probably the most frequently used feature of C++11 is auto. Thanks to auto, the compiler determines the…