我想知道當使用模板元編程技術時,使用靜態常量和枚舉hack之間有什麼區別。模板元編程 - 使用Enum Hack和Static Const之間的區別
EX:(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是在類內部支持static const之前使用的,但爲什麼現在要使用呢?
+1:確實是一個很好的問題,我還想看看除了明顯的答案之外,答案會是什麼。 – 2010-01-31 17:57:42
static const允許int以外的類型。雙例如。 – 2010-06-15 12:53:52