C++ Constant expressions

Da Andreabont's Wiki.

Dal C++11 le constant expression sono espressioni che possono essere eseguite durante la fase di compile-time, risparmiando quindi tempo durante il run-time. Evidentemente, tutti i dati necessari per calcolare una constant expression devono essere disponibili durante la compilazione.

Compilazione

Dal C++14 le constant expression sono molto più flessibili ed interessanti, in questa pagina sarà utilizzato lo standard C++14, è possibile compilare in questo modo:

g++ -std=c++14 <filecpp>

Espresisioni semplici

constexpr int foo = 10 / 5;  // foo = 2
constexpr int bar = foo * 2; // bar = 4

Template

template<int I = 42>
int add(int x) {
    if constexpr (I == 42) {
        // Codice da compilare nella nella versione default.
    } else {
        // Codice da compilare nella versione generale.
    }
}