Avatar ·

C++ में टेम्पलेट घोषित करते समय: class या typename — क्या अंतर है और क्या उपयोग करना बेहतर है?

सभी को नमस्कार! मैंने C++ में टेम्पलेट सीखना शुरू किया है और देखा कि कुछ उदाहरणों में `class` कीवर्ड का उपयोग किया जाता है, जबकि अन्य में `typename` का। उदाहरण के लिए, ये दो घोषणाएँ, जहाँ तक मैं समझता हूँ, एक ही काम करती हैं:\n\n```cpp\ntemplate \nvoid foo(T value) { }\n\ntemplate \nvoid foo(T value) { }\n```\n\nमैं भ्रमित हूँ। दोनों विकल्प काम करते हैं, लेकिन कौन सा सही है? क्या सिंटैक्स के अलावा उनमें कोई अंतर है? मैंने पढ़ा है कि `typename` बाद में आया, और कुछ पुराने प्रोग्रामर आदत से `class` पसंद करते हैं। लेकिन मुझे `class` शब्द का उपयोग उस पैरामीटर के लिए करना अजीब लगता है जो क्लास नहीं हो सकता, जैसे `int` या `double`। वहीं `typename` अधिक सार्वभौमिक लगता है।\n\nइसके अलावा, मैंने सुना है कि कुछ स्थितियाँ हैं जहाँ आप उपयोग कर सकते हैं