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. 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 `const` est-il nécessaire 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 clairement connues à la compilation ? Autre question : si j’écris `const int size = 10;` et