我想知道在使用模板元编程技术时使用静态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;
};
Run Code Online (Sandbox Code Playgroud)
与
template< int n > struct TMPFib {
enum {
val = TMPFib< n-1 >::val + TMPFib< n-2 >::val
};
};
template<> struct TMPFib< 1 > {
enum { val = …Run Code Online (Sandbox Code Playgroud)