constexpr

constexpr std::vector and std::string in C++20

Probably the most viral keyword in modern C++ is constexpr. With C++20, we have a constexpr std::vector and a constexpr std::string. Additionally, both containers can be manipulated with the constexpr algorithms of the Standard Template Library. 

Read more
Views: 67003

C++ 20: The Core Language

My last post C++20: The Big Four started with an overview of concepts, ranges, coroutines, and modules. Of course, C++20 has more to offer. Today, let's continue my overview of the core language.

Read more
Views: 155440

C++ Core Guidelines: Programming at Compile Time with constexpr

My mini-series about programming at compile time started with template metaprogramming, continued with the type-traits library, and ends today with constant expressions (constexpr).

Read more
Tags: constexpr
Views: 77470

Immutable Data

A key to purely functional languages is that their data are immutable. Therefore, assignments such as x= x+1 or ++x are not possible in the purely functional language Haskell. The consequence is that Haskell supports no loops like for, while, or until. They are based on the modification of a loop variable. Haskell does not modify existing data; Haskell creates new data when needed and reuses the old ones.

Read more
Tags: constexpr
Views: 26180

constexpr Functions

constexpr functions are functions that can be executed at compile time. Sounds not so thrilling. But it is. Trust me. You can perform with constexpr functions a lot of calculations at compile time. Therefore, the result of the calculation is at runtime as a constant in ROM available. In addition, constexpr functions are implicitly inline.

Read more
Tags: constexpr
Views: 81338

constexpr - Variables and Objects

If you declare a variable as constexpr the compiler will evaluate them at compile time. This holds not only true for built-in types but also for instantiations of user-defined types. There are a few serious restrictions for objects to evaluate them at compile time.

 

Read more
Tags: constexpr
Views: 40598

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 done with their work at run time.

Read more
Tags: constexpr
Views: 18026

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
Views: 23960

Thread-Safe Initialization of Data

In case the data is not modified when shared between threads, the story is simple. The data has only to be initialized in the thread safe way. It is not necessary to use an expensive lock for each access.

Read more
Views: 92387

Mentoring

Stay Informed about my Mentoring

 

English 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)

Course: C++ Fundamentals for Professionals

Interactive Course: The All-in-One Guide to C++20

Subscribe to the newsletter (+ pdf bundle)

Blog archive

Source Code

Visitors

Today 6005

Yesterday 4527

Week 6005

Month 26752

All 10948213

Currently are 194 guests and no members online

Kubik-Rubik Joomla! Extensions

Latest comments