...

/

Function Execution and Variable Initialization

Function Execution and Variable Initialization

Explore the difference between the 'const', 'constexpr', 'consteval' and 'constinit' keywords.

We'll cover the following...

Now it’s time to write about the differences between const, constexpr, consteval, and constinit. First, I discuss function execution and then variable initialization.

Function execution

The following program has three versions of a square function.

Press + to interact
#include <iostream>
int sqrRunTime(int n) {
return n * n;
}
consteval int sqrCompileTime(int n) {
return n * n;
}
constexpr int sqrRunOrCompileTime(int n) {
return n * n;
}
int main() {
// constexpr int prod1 = sqrRunTime(100); ERROR
constexpr int prod2 = sqrCompileTime(100);
constexpr int prod3 = sqrRunOrCompileTime(100);
int x = 100;
int prod4 = sqrRunTime(x);
// int prod5 = sqrCompileTime(x); ERROR
int prod6 = sqrRunOrCompileTime(x);
}

As the ...