Constant Expressions with constexpr

You can define with the keyword constexpr an expression that can be evaluated at compile time. constexpr can be used for variables, functions, and user-defined types. An expression that is evaluated at compile time has a lot of advantages. For example constexpr variables and instances of user-defined types are automatically thread-safe and can be stored in ROM; constexpr functions that are evaluated at compile time, are totally done with their work at run time.

Read more
Tags: constexpr
Comments 4Views: 7567

inline

Thanks to inline the compiler can replace the function call by the function body. There are two reasons to use inline functions: performance and safety.

Read more
Tags: inline
Comments 5Views: 9913

The Null Pointer Constant nullptr

The new null pointer nullptr cleans up in C++ with the ambiguity of the number 0 and the macro NULL.

Read more
Tags: nullptr
Add CommentViews: 18249

override and final

By using the context sensitive keyword override and final you can explicit manage the overriding of virtual functions. In particular, the keyword override solves a lot of issues with difficult to finding bugs in object hierarchies: Methods that should override methods of base classes. The result is a syntactically but not semantically correct program. The program performs the wrong stuff in the right way.

Read more
Comments 2Views: 30482

Strongly-Typed Enums

Enumerations are a convenient way to define integer constants with names. This integer constants are called enumerators. Sadly, classical enums have a few drawbacks.

Read more
Tags: enum
Comments 10Views: 23880

Raw and Cooked

C++11 has user-defined literals for characters, C strings, integers and floating point numbers. For integers and floating point numbers they are available in raw and cooked form. Thanks to C++14 we have built-in literals for binary numbers, C++ strings, complex numbers, and time units.

Read more
Comments 45Views: 9083

User-Defined Literals

User-defined literals are a unique feature in all mainstream programming languages. They empower you to combine values with units.

Read more
Add CommentViews: 16509

Compare and Modify Types

The type-traits library empowers you to compare and modify types. All is done at compile time therefore there is no performance penalty.

Read more
Comments 2Views: 10040

Check Types

Template Metaprogramming is programming at compile time. But what has template metaprogramming in common with the type-traits library? A lot! The type-traits library is pure template metaprogramming, tamed in a library. With this post my presentation of the type-traits library becomes more structured.

Read more
Comments 2Views: 9391

More and More Save

In the post Statically checked I wrote that the functions of the type-traits library are an ideal fit for static_assert. The reason is that static_assert requires a constant expression. The functions of the type-traits library provides a lot of checks which can be performed at compile time. With this posts I will prove my statement.

Read more
Comments 3Views: 8053

My Newest E-Books

Course: Modern C++ Concurrency in Practice

Course: C++ Standard Library including C++14 & C++17

Course: Embedded Programming with Modern C++

Course: Generic Programming (Templates)

Subscribe to the newsletter (+ pdf bundle)

Blog archive

Source Code

Visitors

Today 295

All 2687828

Currently are 126 guests and no members online

Kubik-Rubik Joomla! Extensions

Latest comments