Avatar ·

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.\n\nVoici un exemple qui me trouble :\n\n```cpp\nconst int x = 42; // Option 1\nconstexpr int y = 42; // Option 2\n\nconst int z = foo(); // Fonctionne\nconstexpr int w = foo(); // Erreur de compilation si foo() n'est pas constexpr\n```\n\nJ'ai lu que `constexpr` garantit une évaluation à la compilation, tandis que `const` non. Mais alors à quoi sert `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 ?\n\nAutre question : si j'écris `const int size = 10;` et