const vs constexpr pour les variables en C++ : quelle est la différence et que choisir ?
Bonjour à tous ! J’étudie C++11/14 et je suis confus quant à la différence entre `const` et `constexpr` lors de la déclaration de variables. Je comprends que les deux mots-clés rendent une variable immuable, mais partout on écrit que ce n’est pas la même chose.
Voici un exemple qui me trouble :
```cpp
const int x = 42; // Option 1
constexpr int y = 42; // Option 2
const int z = foo(); // Fonctionne
constexpr int w = foo(); // Erreur de compilation si foo() n’est pas constexpr
```
J’ai lu que `constexpr` garantit une évaluation à la compilation, tandis que `const` non. Mais alors, pourquoi avons-nous besoin de `const` si `constexpr` est plus strict ? Et pourquoi vois-je dans des projets réels une utilisation généralisée de `const` pour des variables qui sont clairement connues à la compilation ?
Autre question : si j’écris `const int size = 10;` et