C++ में constexpr और const के बीच क्या अंतर है?
नमस्ते! मैंने हाल ही में C++11 सीखना शुरू किया है और `constexpr` कीवर्ड पर ध्यान गया। मैं समझता हूँ कि `const` का मतलब है कि वेरिएबल का मान इनिशियलाइज़ेशन के बाद बदला नहीं जा सकता। लेकिन `constexpr` भी वेरिएबल को कॉन्स्टेंट बनाता है। तो फिर अंतर क्या है?
उदाहरण के लिए, मैं लिख सकता हूँ:
```cpp
const int x = 5;
constexpr int y = 5;
```
दोनों तरीके काम करते हैं। लेकिन मैंने सुना है कि `constexpr` का उपयोग फंक्शन के साथ भी किया जा सकता है। मैंने कोशिश की:
```cpp
constexpr int square(int n) {
return n * n;
}
int main() {
const int a = square(5); // काम करता है?
constexpr int b = square(5); // यह भी काम करता है?
int arr[ square(3) ]; // क्या ऐसा कर सकते हैं?
}
```
यह कंपाइल हो जाता है, लेकिन मुझे असली फायदा समझ नहीं आता। कब `constexpr` का उपयोग `const` के बजाय करना चाहिए? और सिर्फ `const` क्यों पर्याप्त नहीं है? मुझे लगता है कि यह कार्यक्षमता का दोहराव है। कृपया उदाहरणों के साथ समझाएँ कि कब क्या उपयोग करना चाहिए। पहले से धन्यवाद!
<<>>