का उपयोग करने के बीच अंतर मैं सोच रहा हूं कि टेम्पलेट मेटाप्रोग्रामिंग तकनीकों का उपयोग करते समय एक स्थिर कॉन्स और एनम हैक का उपयोग करने के बीच क्या अंतर है।टेम्पलेट मेटाप्रोग्रामिंग - एनम हैक और स्टेटिक कॉन्स
पूर्व: (TMP के माध्यम से फाइबोनैचि)
template< int n > struct TMPFib {
static const int val =
TMPFib< n-1 >::val + TMPFib< n-2 >::val;
};
template<> struct TMPFib<1> {
static const int val = 1;
};
template<> struct TMPFib<0> {
static const int val = 0;
};
बनाम
template< int n > struct TMPFib {
enum {
val = TMPFib< n-1 >::val + TMPFib< n-2 >::val
};
};
template<> struct TMPFib<1> {
enum { val = 1 };
};
template<> struct TMPFib<0> {
enum { val = 0 };
};
क्यों एक दूसरे के ऊपर का उपयोग करें? मैंने पढ़ा है कि कक्षाओं के अंदर स्थिर कॉन्स का समर्थन करने से पहले enum hack का उपयोग किया गया था, लेकिन अब इसका उपयोग क्यों करें?
+1: वास्तव में एक महान सवाल है, और मैं यह भी देखना चाहूंगा कि उत्तर स्पष्ट के अलावा क्या होगा। –
स्थिर कॉन्स int के अलावा अन्य प्रकार की अनुमति देता है। उदाहरण के लिए डबल। –